diff options
-rw-r--r-- | LICENSE | 2 | ||||
-rw-r--r-- | METADATA | 4 | ||||
-rw-r--r-- | README.md | 2 | ||||
-rwxr-xr-x | configure | 10 | ||||
-rw-r--r-- | configure.ac | 12 | ||||
-rw-r--r-- | docs/conf.py | 2 | ||||
-rw-r--r-- | src/iperf3.1 | 2 | ||||
-rwxr-xr-x | src/iperf_api.c | 30 | ||||
-rwxr-xr-x | src/iperf_api.h | 5 |
9 files changed, 54 insertions, 15 deletions
@@ -1,4 +1,4 @@ -"iperf, Copyright (c) 2014-2018, The Regents of the University of California, +"iperf, Copyright (c) 2014-2019, 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." @@ -9,10 +9,10 @@ third_party { type: GIT value: "https://github.com/esnet/iperf.git" } - version: "61b82c0b25052364bae99f83a583ab7c7f5f2d2d" + version: "2679640c0f6dfc28f0e243adb3bfdf8c41cbb027" last_upgrade_date { year: 2019 - month: 5 + month: 6 day: 2 } } @@ -163,7 +163,7 @@ responsibility for the content of these pages. Copyright --------- -iperf, Copyright (c) 2014-2018, The Regents of the University of +iperf, Copyright (c) 2014-2019, 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. @@ -12736,6 +12736,7 @@ if test "x$with_openssl" = "xno"; then $as_echo "$as_me: WARNING: Building without OpenSSL; disabling iperf_auth functionality. " >&2;} else # Check for OPENSSL support + havs_ssl=false found=false @@ -12923,6 +12924,7 @@ $as_echo "yes" >&6; } $as_echo "#define HAVE_SSL 1" >>confdefs.h + have_ssl=true else @@ -12947,9 +12949,11 @@ rm -f core conftest.err conftest.$ac_objext \ - LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS" - LIBS="$OPENSSL_LIBS $LIBS" - CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS" + if $have_ssl; then + LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS" + LIBS="$OPENSSL_LIBS $LIBS" + CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS" + fi fi # Check for TCP_CONGESTION sockopt (believed to be Linux and FreeBSD only) diff --git a/configure.ac b/configure.ac index 7e36a1d..cea094a 100644 --- a/configure.ac +++ b/configure.ac @@ -114,15 +114,19 @@ if test "x$with_openssl" = "xno"; then AC_MSG_WARN( [Building without OpenSSL; disabling iperf_auth functionality.] ) else # Check for OPENSSL support + havs_ssl=false AX_CHECK_OPENSSL( - [ AC_DEFINE([HAVE_SSL], [1], [OpenSSL Is Available]) ], + [ AC_DEFINE([HAVE_SSL], [1], [OpenSSL Is Available]) + have_ssl=true ], [ if test "x$with_openssl" != "x"; then AC_MSG_FAILURE([--with-openssl was given, but test for OpenSSL failed]) fi ] ) - LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS" - LIBS="$OPENSSL_LIBS $LIBS" - CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS" + if $have_ssl; then + LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS" + LIBS="$OPENSSL_LIBS $LIBS" + CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS" + fi fi # Check for TCP_CONGESTION sockopt (believed to be Linux and FreeBSD only) diff --git a/docs/conf.py b/docs/conf.py index e865374..0db2c7e 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -45,7 +45,7 @@ master_doc = 'index' # General information about the project. project = u'iperf3' -copyright = u'2014-2018, ESnet' +copyright = u'2014-2019, ESnet' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff --git a/src/iperf3.1 b/src/iperf3.1 index 4a6d7d7..8b08fcb 100644 --- a/src/iperf3.1 +++ b/src/iperf3.1 @@ -139,8 +139,6 @@ CPUs). .TP .BR -B ", " --bind " \fIhost\fR" bind to the specific interface associated with address \fIhost\fR. -If the host has multiple interfaces, it will use the first interface -by default. .TP .BR -V ", " --verbose " " give more detailed output diff --git a/src/iperf_api.c b/src/iperf_api.c index 4c1d927..014a560 100755 --- a/src/iperf_api.c +++ b/src/iperf_api.c @@ -238,6 +238,12 @@ iperf_get_test_num_streams(struct iperf_test *ipt) } int +iperf_get_test_repeating_payload(struct iperf_test *ipt) +{ + return ipt->repeating_payload; +} + +int iperf_get_test_server_port(struct iperf_test *ipt) { return ipt->server_port; @@ -328,6 +334,12 @@ iperf_get_iperf_version(void) return (char*)iperf_version; } +int +iperf_get_test_no_delay(struct iperf_test *ipt) +{ + return ipt->no_delay; +} + /************** Setter routines for some fields inside iperf_test *************/ void @@ -432,6 +444,12 @@ iperf_set_test_num_streams(struct iperf_test *ipt, int num_streams) ipt->num_streams = num_streams; } +void +iperf_set_test_repeating_payload(struct iperf_test *ipt, int repeating_payload) +{ + ipt->repeating_payload = repeating_payload; +} + static void check_sender_has_retransmits(struct iperf_test *ipt) { @@ -579,6 +597,12 @@ iperf_set_test_bidirectional(struct iperf_test* ipt, int bidirectional) iperf_set_test_reverse(ipt, ipt->reverse); } +void +iperf_set_test_no_delay(struct iperf_test* ipt, int no_delay) +{ + ipt->no_delay = no_delay; +} + /********************** Get/set test protocol structure ***********************/ struct protocol * @@ -1670,6 +1694,8 @@ send_parameters(struct iperf_test *test) cJSON_AddNumberToObject(j, "get_server_output", iperf_get_test_get_server_output(test)); if (test->udp_counters_64bit) cJSON_AddNumberToObject(j, "udp_counters_64bit", iperf_get_test_udp_counters_64bit(test)); + if (test->repeating_payload) + cJSON_AddNumberToObject(j, "repeating_payload", test->repeating_payload); #if defined(HAVE_SSL) if (test->settings->client_username && test->settings->client_password && test->settings->client_rsa_pubkey){ encode_auth_setting(test->settings->client_username, test->settings->client_password, test->settings->client_rsa_pubkey, &test->settings->authtoken); @@ -1763,6 +1789,8 @@ get_parameters(struct iperf_test *test) iperf_set_test_get_server_output(test, 1); if ((j_p = cJSON_GetObjectItem(j, "udp_counters_64bit")) != NULL) iperf_set_test_udp_counters_64bit(test, 1); + if ((j_p = cJSON_GetObjectItem(j, "repeating_payload")) != NULL) + test->repeating_payload = 1; #if defined(HAVE_SSL) if ((j_p = cJSON_GetObjectItem(j, "authtoken")) != NULL) test->settings->authtoken = strdup(j_p->valuestring); @@ -3325,7 +3353,7 @@ iperf_print_results(struct iperf_test *test) } /* Print server output if we're on the client and it was requested/provided */ - if (test->role == 'c' && iperf_get_test_get_server_output(test)) { + if (test->role == 'c' && iperf_get_test_get_server_output(test) && !test->json_output) { if (test->json_server_output) { iperf_printf(test, "\nServer JSON output:\n%s\n", cJSON_Print(test->json_server_output)); cJSON_Delete(test->json_server_output); diff --git a/src/iperf_api.h b/src/iperf_api.h index eba7e70..7daf974 100755 --- a/src/iperf_api.h +++ b/src/iperf_api.h @@ -27,6 +27,7 @@ #ifndef __IPERF_API_H #define __IPERF_API_H +#include <sys/socket.h> #include <sys/time.h> #include <setjmp.h> #include <stdio.h> @@ -111,6 +112,7 @@ int iperf_get_test_socket_bufsize( struct iperf_test* ipt ); double iperf_get_test_reporter_interval( struct iperf_test* ipt ); double iperf_get_test_stats_interval( struct iperf_test* ipt ); int iperf_get_test_num_streams( struct iperf_test* ipt ); +int iperf_get_test_repeating_payload( struct iperf_test* ipt ); int iperf_get_test_server_port( struct iperf_test* ipt ); char* iperf_get_test_server_hostname( struct iperf_test* ipt ); char* iperf_get_test_template( struct iperf_test* ipt ); @@ -125,6 +127,7 @@ int iperf_get_test_one_off( struct iperf_test* ipt ); int iperf_get_test_tos( struct iperf_test* ipt ); char* iperf_get_extra_data( struct iperf_test* ipt ); char* iperf_get_iperf_version(void); +int iperf_get_test_no_delay( struct iperf_test* ipt ); /* Setter routines for some fields inside iperf_test. */ void iperf_set_verbose( struct iperf_test* ipt, int verbose ); @@ -143,6 +146,7 @@ void iperf_set_test_burst( struct iperf_test* ipt, int burst ); void iperf_set_test_server_port( struct iperf_test* ipt, int server_port ); void iperf_set_test_socket_bufsize( struct iperf_test* ipt, int socket_bufsize ); void iperf_set_test_num_streams( struct iperf_test* ipt, int num_streams ); +void iperf_set_test_repeating_payload( struct iperf_test* ipt, int repeating_payload ); void iperf_set_test_role( struct iperf_test* ipt, char role ); void iperf_set_test_server_hostname( struct iperf_test* ipt, char* server_hostname ); void iperf_set_test_template( struct iperf_test *ipt, char *tmp_template ); @@ -157,6 +161,7 @@ void iperf_set_test_one_off( struct iperf_test* ipt, int one_off ); void iperf_set_test_tos( struct iperf_test* ipt, int tos ); void iperf_set_extra_data( struct iperf_test* ipt, char *dat); void iperf_set_test_bidirectional( struct iperf_test* ipt, int bidirectional); +void iperf_set_test_no_delay( struct iperf_test* ipt, int no_delay); #if defined(HAVE_SSL) void iperf_set_test_client_username(struct iperf_test *ipt, char *client_username); |