aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--LICENSE2
-rw-r--r--METADATA4
-rw-r--r--README.md2
-rwxr-xr-xconfigure10
-rw-r--r--configure.ac12
-rw-r--r--docs/conf.py2
-rw-r--r--src/iperf3.12
-rwxr-xr-xsrc/iperf_api.c30
-rwxr-xr-xsrc/iperf_api.h5
9 files changed, 54 insertions, 15 deletions
diff --git a/LICENSE b/LICENSE
index 9ce3421..ff2fcd1 100644
--- a/LICENSE
+++ b/LICENSE
@@ -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."
diff --git a/METADATA b/METADATA
index 1bda5a4..78bbb0d 100644
--- a/METADATA
+++ b/METADATA
@@ -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
}
}
diff --git a/README.md b/README.md
index 675bea0..b3c0964 100644
--- a/README.md
+++ b/README.md
@@ -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.
diff --git a/configure b/configure
index 9f9023e..679da39 100755
--- a/configure
+++ b/configure
@@ -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);