Hello community, here is the log from the commit of package iperf for openSUSE:Factory checked in at 2015-04-07 09:29:47 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/iperf (Old) and /work/SRC/openSUSE:Factory/.iperf.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "iperf" Changes: -------- --- /work/SRC/openSUSE:Factory/iperf/iperf.changes 2015-01-10 23:05:15.000000000 +0100 +++ /work/SRC/openSUSE:Factory/.iperf.new/iperf.changes 2015-04-07 09:29:47.000000000 +0200 @@ -1,0 +2,8 @@ +Sun Apr 5 21:17:52 UTC 2015 - [email protected] + +- iperf 3.0.11 + * This maintenance release adds a -1 flag to make the iperf3 + execute a single test and exit, needed for an upcoming bwctl + release. A few other bugs are also fixed. + +------------------------------------------------------------------- @@ -7 +14,0 @@ - Old: ---- iperf-3.0.10.tar.gz New: ---- iperf-3.0.11.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ iperf.spec ++++++ --- /var/tmp/diff_new_pack.fNcFew/_old 2015-04-07 09:29:48.000000000 +0200 +++ /var/tmp/diff_new_pack.fNcFew/_new 2015-04-07 09:29:48.000000000 +0200 @@ -18,14 +18,14 @@ %define soname 0 Name: iperf -Version: 3.0.10 +Version: 3.0.11 Release: 0 Summary: A tool to measure network performance License: BSD-3-Clause Group: Productivity/Networking/Diagnostic Url: http://software.es.net/iperf/ Source: http://downloads.es.net/pub/iperf/%{name}-%{version}.tar.gz -# PATCH-FIX-OPENSUSE -- Disable profiling if %optflags includes -fomit-frame-pointer, as option -pg conflicts with it +# PATCH-FIX-OPENSUSE -- Disable profiling if %%optflags includes -fomit-frame-pointer, as option -pg conflicts with it Patch1: iperf-3.0.5_disable-profiling.patch %if %{?sles_version} && %{?sles_version} <= 11 BuildRequires: libuuid-devel ++++++ iperf-3.0.10.tar.gz -> iperf-3.0.11.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iperf-3.0.10/README.md new/iperf-3.0.11/README.md --- old/iperf-3.0.10/README.md 2014-12-16 20:39:58.000000000 +0100 +++ new/iperf-3.0.11/README.md 2015-01-09 18:44:11.000000000 +0100 @@ -159,7 +159,7 @@ Copyright --------- -iperf, Copyright (c) 2014, The Regents of the University of +iperf, Copyright (c) 2014-2015, The Regents of the University of California, through Lawrence Berkeley National Laboratory (subject to receipt of any required approvals from the U.S. Dept. of Energy). All rights reserved. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iperf-3.0.10/RELEASE_NOTES new/iperf-3.0.11/RELEASE_NOTES --- old/iperf-3.0.10/RELEASE_NOTES 2014-12-16 20:39:58.000000000 +0100 +++ new/iperf-3.0.11/RELEASE_NOTES 2015-01-09 18:44:11.000000000 +0100 @@ -1,3 +1,16 @@ +== iperf 3.0.11 2015-01-09 == + +* User-visible changes + + * Added -1 / --one-off flag, which causes the iperf3 server to + process one client connection and then exit. Intended primarily + for bwctl integration (issue #230). + + * Added various minor bug fixes (issues #231, #232, #233). + + * Added 30-second timeout for UDP tests if unable to establish UDP + connectivity between sender and receiver (issue #222). + == iperf 3.0.10 2014-12-16 == * User-visible changes diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iperf-3.0.10/configure new/iperf-3.0.11/configure --- old/iperf-3.0.10/configure 2014-12-16 20:39:58.000000000 +0100 +++ new/iperf-3.0.11/configure 2015-01-09 18:44:11.000000000 +0100 @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for iperf 3.0.10. +# Generated by GNU Autoconf 2.69 for iperf 3.0.11. # # Report bugs to <https://github.com/esnet/iperf>. # @@ -590,8 +590,8 @@ # Identity of this package. PACKAGE_NAME='iperf' PACKAGE_TARNAME='iperf' -PACKAGE_VERSION='3.0.10' -PACKAGE_STRING='iperf 3.0.10' +PACKAGE_VERSION='3.0.11' +PACKAGE_STRING='iperf 3.0.11' PACKAGE_BUGREPORT='https://github.com/esnet/iperf' PACKAGE_URL='http://software.es.net/iperf/' @@ -1316,7 +1316,7 @@ # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures iperf 3.0.10 to adapt to many kinds of systems. +\`configure' configures iperf 3.0.11 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1386,7 +1386,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of iperf 3.0.10:";; + short | recursive ) echo "Configuration of iperf 3.0.11:";; esac cat <<\_ACEOF @@ -1498,7 +1498,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -iperf configure 3.0.10 +iperf configure 3.0.11 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1776,7 +1776,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by iperf $as_me 3.0.10, which was +It was created by iperf $as_me 3.0.11, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -2645,7 +2645,7 @@ # Define the identity of the package. PACKAGE='iperf' - VERSION='3.0.10' + VERSION='3.0.11' cat >>confdefs.h <<_ACEOF @@ -12779,7 +12779,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by iperf $as_me 3.0.10, which was +This file was extended by iperf $as_me 3.0.11, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -12846,7 +12846,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -iperf config.status 3.0.10 +iperf config.status 3.0.11 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iperf-3.0.10/configure.ac new/iperf-3.0.11/configure.ac --- old/iperf-3.0.10/configure.ac 2014-12-16 20:39:58.000000000 +0100 +++ new/iperf-3.0.11/configure.ac 2015-01-09 18:44:11.000000000 +0100 @@ -1,4 +1,4 @@ -# iperf, Copyright (c) 2014, The Regents of the University of +# iperf, Copyright (c) 2014, 2015, The Regents of the University of # California, through Lawrence Berkeley National Laboratory (subject # to receipt of any required approvals from the U.S. Dept. of # Energy). All rights reserved. @@ -24,7 +24,7 @@ # file for complete information. # Initialize the autoconf system for the specified tool, version and mailing list -AC_INIT(iperf, 3.0.10, https://github.com/esnet/iperf, iperf, http://software.es.net/iperf/) +AC_INIT(iperf, 3.0.11, https://github.com/esnet/iperf, iperf, http://software.es.net/iperf/) # Specify where the auxiliary files created by configure should go. The config # directory is picked so that they don't clutter up more useful directories. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iperf-3.0.10/src/iperf.h new/iperf-3.0.11/src/iperf.h --- old/iperf-3.0.10/src/iperf.h 2014-12-16 20:39:58.000000000 +0100 +++ new/iperf-3.0.11/src/iperf.h 2015-01-09 18:44:11.000000000 +0100 @@ -192,6 +192,7 @@ /* boolean variables for Options */ int daemon; /* -D option */ + int one_off; /* -1 option */ int no_delay; /* -N option */ int reverse; /* -R option */ int verbose; /* -V option - verbose mode */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iperf-3.0.10/src/iperf3.1 new/iperf-3.0.11/src/iperf3.1 --- old/iperf-3.0.10/src/iperf3.1 2014-12-16 20:39:58.000000000 +0100 +++ new/iperf-3.0.11/src/iperf3.1 2015-01-09 18:44:11.000000000 +0100 @@ -1,4 +1,4 @@ -.TH IPERF 1 "June 2014" ESnet "User Manuals" +.TH IPERF 1 "January 2015" ESnet "User Manuals" .SH NAME iperf3 \- perform network throughput tests .SH SYNOPSIS @@ -64,6 +64,9 @@ .TP .BR -D ", " --daemon " " run the server in background as a daemon +.TP +.BR -1 ", " --one-off +handle one client connection, then exit. .SH "CLIENT SPECIFIC OPTIONS" .TP diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iperf-3.0.10/src/iperf_api.c new/iperf-3.0.11/src/iperf_api.c --- old/iperf-3.0.10/src/iperf_api.c 2014-12-16 20:39:58.000000000 +0100 +++ new/iperf-3.0.11/src/iperf_api.c 2015-01-09 18:44:11.000000000 +0100 @@ -1,5 +1,5 @@ /* - * iperf, Copyright (c) 2014, The Regents of the University of + * iperf, Copyright (c) 2014, 2015, The Regents of the University of * California, through Lawrence Berkeley National Laboratory (subject * to receipt of any required approvals from the U.S. Dept. of * Energy). All rights reserved. @@ -228,6 +228,12 @@ return ipt->bind_address; } +int +iperf_get_test_one_off(struct iperf_test *ipt) +{ + return ipt->one_off; +} + /************** Setter routines for some fields inside iperf_test *************/ void @@ -360,7 +366,7 @@ void iperf_set_test_zerocopy(struct iperf_test *ipt, int zerocopy) { - ipt->zerocopy = zerocopy; + ipt->zerocopy = (zerocopy && has_sendfile()); } void @@ -381,6 +387,12 @@ ipt->bind_address = strdup(bind_address); } +void +iperf_set_test_one_off(struct iperf_test *ipt, int one_off) +{ + ipt->one_off = one_off; +} + /********************** Get/set test protocol structure ***********************/ struct protocol * @@ -550,6 +562,7 @@ {"format", required_argument, NULL, 'f'}, {"interval", required_argument, NULL, 'i'}, {"daemon", no_argument, NULL, 'D'}, + {"one-off", no_argument, NULL, '1'}, {"verbose", no_argument, NULL, 'V'}, {"json", no_argument, NULL, 'J'}, {"version", no_argument, NULL, 'v'}, @@ -592,7 +605,7 @@ blksize = 0; server_flag = client_flag = rate_flag = duration_flag = 0; - while ((flag = getopt_long(argc, argv, "p:f:i:DVJvsc:ub:t:n:k:l:P:Rw:B:M:N46S:L:ZO:F:A:T:C:dh", longopts, NULL)) != -1) { + while ((flag = getopt_long(argc, argv, "p:f:i:D1VJvsc:ub:t:n:k:l:P:Rw:B:M:N46S:L:ZO:F:A:T:C:dh", longopts, NULL)) != -1) { switch (flag) { case 'p': test->server_port = atoi(optarg); @@ -613,6 +626,10 @@ test->daemon = 1; server_flag = 1; break; + case '1': + test->one_off = 1; + server_flag = 1; + break; case 'V': test->verbose = 1; break; @@ -892,7 +909,7 @@ int iperf_send(struct iperf_test *test, fd_set *write_setP) { - register int multisend, r; + register int multisend, r, streams_active; register struct iperf_stream *sp; struct timeval now; @@ -907,6 +924,7 @@ for (; multisend > 0; --multisend) { if (test->settings->rate != 0 && test->settings->burst == 0) gettimeofday(&now, NULL); + streams_active = 0; SLIST_FOREACH(sp, &test->streams, streams) { if (sp->green_light && (write_setP == NULL || FD_ISSET(sp->socket, write_setP))) { @@ -916,6 +934,7 @@ i_errno = IESTREAMWRITE; return r; } + streams_active = 1; test->bytes_sent += r; ++test->blocks_sent; if (test->settings->rate != 0 && test->settings->burst == 0) @@ -926,6 +945,8 @@ break; } } + if (!streams_active) + break; } if (test->settings->burst != 0) { gettimeofday(&now, NULL); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iperf-3.0.10/src/iperf_api.h new/iperf-3.0.11/src/iperf_api.h --- old/iperf-3.0.10/src/iperf_api.h 2014-12-16 20:39:58.000000000 +0100 +++ new/iperf-3.0.11/src/iperf_api.h 2015-01-09 18:44:11.000000000 +0100 @@ -1,5 +1,5 @@ /* - * iperf, Copyright (c) 2014, The Regents of the University of + * iperf, Copyright (c) 2014, 2015, The Regents of the University of * California, through Lawrence Berkeley National Laboratory (subject * to receipt of any required approvals from the U.S. Dept. of * Energy). All rights reserved. @@ -86,6 +86,7 @@ int iperf_get_test_zerocopy( struct iperf_test* ipt ); int iperf_get_test_get_server_output( struct iperf_test* ipt ); char* iperf_get_test_bind_address ( struct iperf_test* ipt ); +int iperf_get_test_one_off( struct iperf_test* ipt ); /* Setter routines for some fields inside iperf_test. */ void iperf_set_verbose( struct iperf_test* ipt, int verbose ); @@ -109,6 +110,7 @@ void iperf_set_test_zerocopy( struct iperf_test* ipt, int zerocopy ); void iperf_set_test_get_server_output( struct iperf_test* ipt, int get_server_output ); void iperf_set_test_bind_address( struct iperf_test* ipt, char *bind_address ); +void iperf_set_test_one_off( struct iperf_test* ipt, int one_off ); /** * exchange_parameters - handles the param_Exchange part for client diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iperf-3.0.10/src/iperf_locale.c new/iperf-3.0.11/src/iperf_locale.c --- old/iperf-3.0.10/src/iperf_locale.c 2014-12-16 20:39:58.000000000 +0100 +++ new/iperf-3.0.11/src/iperf_locale.c 2015-01-09 18:44:11.000000000 +0100 @@ -1,5 +1,5 @@ /*--------------------------------------------------------------- - * iperf, Copyright (c) 2014, The Regents of the University of + * iperf, Copyright (c) 2014, 2015, The Regents of the University of * California, through Lawrence Berkeley National Laboratory (subject * to receipt of any required approvals from the U.S. Dept. of * Energy). All rights reserved. @@ -111,6 +111,7 @@ "Server specific:\n" " -s, --server run in server mode\n" " -D, --daemon run the server as a daemon\n" + " -1, --one-off handle one client connection then exit\n" "Client specific:\n" " -c, --client <host> run in client mode, connecting to <host>\n" " -u, --udp use UDP rather than TCP\n" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iperf-3.0.10/src/iperf_udp.c new/iperf-3.0.11/src/iperf_udp.c --- old/iperf-3.0.10/src/iperf_udp.c 2014-12-16 20:39:58.000000000 +0100 +++ new/iperf-3.0.11/src/iperf_udp.c 2015-01-09 18:44:11.000000000 +0100 @@ -260,6 +260,9 @@ iperf_udp_connect(struct iperf_test *test) { int s, buf, sz; +#ifdef SO_RCVTIMEO + struct timeval tv; +#endif /* Create and bind our local socket. */ if ((s = netdial(test->settings->domain, Pudp, test->bind_address, test->server_hostname, test->server_port)) < 0) { @@ -283,6 +286,13 @@ } } +#ifdef SO_RCVTIMEO + /* 30 sec timeout for a case when there is a network problem. */ + tv.tv_sec = 30; + tv.tv_usec = 0; + setsockopt(s, SOL_SOCKET, SO_RCVTIMEO, (struct timeval *)&tv, sizeof(struct timeval)); +#endif + /* * Write a datagram to the UDP stream to let the server know we're here. * The server learns our address by obtaining its peer's address. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iperf-3.0.10/src/main.c new/iperf-3.0.11/src/main.c --- old/iperf-3.0.10/src/main.c 2014-12-16 20:39:58.000000000 +0100 +++ new/iperf-3.0.11/src/main.c 2015-01-09 18:44:11.000000000 +0100 @@ -139,6 +139,8 @@ } else consecutive_errors = 0; iperf_reset_test(test); + if (iperf_get_test_one_off(test)) + break; } break; case 'c': diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/iperf-3.0.10/src/net.c new/iperf-3.0.11/src/net.c --- old/iperf-3.0.10/src/net.c 2014-12-16 20:39:58.000000000 +0100 +++ new/iperf-3.0.11/src/net.c 2015-01-09 18:44:11.000000000 +0100 @@ -1,5 +1,5 @@ /* - * iperf, Copyright (c) 2014, The Regents of the University of + * iperf, Copyright (c) 2014, 2015, The Regents of the University of * California, through Lawrence Berkeley National Laboratory (subject * to receipt of any required approvals from the U.S. Dept. of * Energy). All rights reserved. @@ -298,28 +298,26 @@ offset = count - nleft; #ifdef linux r = sendfile(tofd, fromfd, &offset, nleft); -#else -#ifdef __FreeBSD__ + if (r > 0) + nleft -= r; +#elif defined(__FreeBSD__) r = sendfile(fromfd, tofd, offset, nleft, NULL, &sent, 0); - if (r == 0) - r = sent; -#else -#if defined(__APPLE__) && defined(__MACH__) && defined(MAC_OS_X_VERSION_10_6) /* OS X */ + nleft -= sent; +#elif defined(__APPLE__) && defined(__MACH__) && defined(MAC_OS_X_VERSION_10_6) /* OS X */ sent = nleft; r = sendfile(fromfd, tofd, offset, &sent, NULL, 0); - if (r == 0) - r = sent; + nleft -= sent; #else /* Shouldn't happen. */ r = -1; errno = ENOSYS; #endif -#endif -#endif if (r < 0) { switch (errno) { case EINTR: case EAGAIN: + if (count == nleft) + return NET_SOFTERROR; return count - nleft; case ENOBUFS: @@ -329,9 +327,11 @@ default: return NET_HARDERROR; } - } else if (r == 0) + } +#ifdef linux + else if (r == 0) return NET_SOFTERROR; - nleft -= r; +#endif } return count; }
