summaryrefslogtreecommitdiff
path: root/recipes/iperf/iperf-2.0.4/004-svn-r43-ro.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes/iperf/iperf-2.0.4/004-svn-r43-ro.patch')
-rw-r--r--recipes/iperf/iperf-2.0.4/004-svn-r43-ro.patch113
1 files changed, 113 insertions, 0 deletions
diff --git a/recipes/iperf/iperf-2.0.4/004-svn-r43-ro.patch b/recipes/iperf/iperf-2.0.4/004-svn-r43-ro.patch
new file mode 100644
index 0000000000..cab9e18a41
--- /dev/null
+++ b/recipes/iperf/iperf-2.0.4/004-svn-r43-ro.patch
@@ -0,0 +1,113 @@
+--- iperf-2.0.4-4/AUTHORS 2009-07-06 12:02:24.159696747 +0200
++++ iperf-2.0.4/AUTHORS 2009-07-06 12:14:32.236079541 +0200
+@@ -28,3 +28,7 @@
+
+ Stephen Hemminger <shemminger@linux-foundation.org>
+ * Linux congestion control selection and theading improvements
++
++Nathan Jones <nmjones@users.sourceforge.net>
++ * patch for underflow when value specified in -n is not a multiple of -l
++
+--- iperf-2.0.4-4/ChangeLog 2009-07-06 12:02:24.166276642 +0200
++++ iperf-2.0.4/ChangeLog 2009-07-06 12:15:28.883699655 +0200
+@@ -1,3 +1,18 @@
++2008-05-09 Jon Dugan <jdugan@x1024.net>
++
++* change currLen to unsigned to squelch warning generated by Nathan's patch
++
++2008-05-09 Nathan Jones <nmjones@users.sourceforge.net>
++
++* prevent underflow when the amount of data to be transmitted (-n) is not a
++multiple of the buffer size (-l) Patch:
++https://sourceforge.net/tracker/index.php?func=detail&aid=1943432&group_id=128336&atid=711373
++
++2008-04-08 Jon Dugan <jdugan@x1024.net>
++
++* print report headers only once
++* use appropriate report header for UDP tests
++
+ 2008-04-07 Jon Dugan <jdugan@x1024.net>
+
+ * Add man page to autoconf goo
+diff -urN 204orig/src/Client.cpp trunk/src/Client.cpp
+--- 204orig/src/Client.cpp 2008-04-08 04:37:54.000000000 +0200
++++ trunk/src/Client.cpp 2008-05-10 05:18:35.000000000 +0200
+@@ -116,7 +116,7 @@
+ const int kBytes_to_Bits = 8;
+
+ void Client::RunTCP( void ) {
+- long currLen = 0;
++ unsigned long currLen = 0;
+ struct itimerval it;
+ max_size_t totLen = 0;
+
+@@ -170,7 +170,12 @@
+ }
+
+ if ( !mMode_Time ) {
+- mSettings->mAmount -= currLen;
++ /* mAmount may be unsigned, so don't let it underflow! */
++ if( mSettings->mAmount >= currLen ) {
++ mSettings->mAmount -= currLen;
++ } else {
++ mSettings->mAmount = 0;
++ }
+ }
+
+ } while ( ! (sInterupted ||
+@@ -198,7 +203,7 @@
+
+ void Client::Run( void ) {
+ struct UDP_datagram* mBuf_UDP = (struct UDP_datagram*) mBuf;
+- long currLen = 0;
++ unsigned long currLen = 0;
+
+ int delay_target = 0;
+ int delay = 0;
+@@ -310,7 +315,12 @@
+ delay_loop( delay );
+ }
+ if ( !mMode_Time ) {
+- mSettings->mAmount -= currLen;
++ /* mAmount may be unsigned, so don't let it underflow! */
++ if( mSettings->mAmount >= currLen ) {
++ mSettings->mAmount -= currLen;
++ } else {
++ mSettings->mAmount = 0;
++ }
+ }
+
+ } while ( ! (sInterupted ||
+diff -urN 204orig/src/ReportDefault.c trunk/src/ReportDefault.c
+--- 204orig/src/ReportDefault.c 2008-04-08 04:37:54.000000000 +0200
++++ trunk/src/ReportDefault.c 2008-04-09 02:08:11.000000000 +0200
+@@ -67,6 +67,7 @@
+ * Prints transfer reports in default style
+ */
+ void reporter_printstats( Transfer_Info *stats ) {
++ static char header_printed = 0;
+
+ byte_snprintf( buffer, sizeof(buffer)/2, (double) stats->TotalLen,
+ toupper( stats->mFormat));
+@@ -76,13 +77,19 @@
+
+ if ( stats->mUDP != (char)kMode_Server ) {
+ // TCP Reporting
+- printf( report_bw_header);
++ if( !header_printed ) {
++ printf( report_bw_header);
++ header_printed = 1;
++ }
+ printf( report_bw_format, stats->transferID,
+ stats->startTime, stats->endTime,
+ buffer, &buffer[sizeof(buffer)/2] );
+ } else {
+ // UDP Reporting
+- printf( report_bw_jitter_loss_header);
++ if( !header_printed ) {
++ printf( report_bw_jitter_loss_header);
++ header_printed = 1;
++ }
+ printf( report_bw_jitter_loss_format, stats->transferID,
+ stats->startTime, stats->endTime,
+ buffer, &buffer[sizeof(buffer)/2],