Skip to content

Commit

Permalink
Merge branch 'esnet:master' into master
Browse files Browse the repository at this point in the history
  • Loading branch information
BenjaminBeichler authored Sep 25, 2023
2 parents 604f036 + 57bbb05 commit c50c58b
Show file tree
Hide file tree
Showing 20 changed files with 327 additions and 95 deletions.
8 changes: 8 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
name: test
on: [push, pull_request]
jobs:
cppcheck-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: install dependencies
run: |
sudo apt-get -y update && sudo apt-get install -y cppcheck && \
cppcheck . --force --inline-suppr
build-test-latest:
runs-on: ubuntu-latest
steps:
Expand Down
9 changes: 7 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ These flags include:
-Z, --zerocopy use a 'zero copy' sendfile() method of sending data
-A, --affinity n/n,m set CPU affinity

Bug Reports
-----------
Bug and Security Reports
------------------------

Before submitting a bug report, please make sure you're running the
latest version of the code, and confirm that your issue has not
Expand All @@ -99,6 +99,11 @@ sensitive information.
If you have a question about usage or about the code, please do *not*
submit an issue. Please use one of the mailing lists for that.

If you suspect there is a potential security issue, please contact the
developers at:

[email protected]

Relation to iperf 2.x
---------------------

Expand Down
53 changes: 53 additions & 0 deletions RELNOTES.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,59 @@
iperf3 Release Notes
====================

iperf-3.15 2023-09-14
---------------------

* Notable user-visible changes

* Several bugs that could allow the iperf3 server to hang waiting
for input on the control connection has been fixed. ESnet thanks
Jorge Sancho Larraz from Canonical for reporting this issue. For
more information, see:
https://downloads.es.net/pub/iperf/esnet-secadv-2023-0002.txt.asc

* A bug that caused garbled output with UDP tests on 32-bit hosts
has been fixed (PR #1554, PR #1556). This bug was introduced in
iperf-3.14.

* A bug in counting UDP messages has been fixed (PR #1367, PR
#1380).

iperf-3.14 2023-07-07
---------------------

* Notable user-visible changes

* A memory allocation hazard was fixed (Issue #1542/PR #1543). For
more information see:
https://downloads.es.net/pub/iperf/esnet-secadv-2023-0001.txt.asc

* JSON output was improved, such as print JSON numbers as signed (PR
#1539, Issue #1435), the exit code when doing JSON output was
fixed (PR #1523), and client_api was fixed so that it still
returns an error code when JSON is enabled (Issue #1405). Also,
duplicate fields when using multiple streams was removed from the
JSON output (#1492).

* Prevent UDP packet count and operations overflow (PR #1536/Issue
#1534).

* Statistics are fixed when --omit is used (Issue #1489/PR #1498).

* Developer-visible changes

* CI builds and tests using GitHub actions have been added (PR
#1519).

* A fix for Android "unable to create a new stream error" was added
(PR #1506).

* Support for Voice Admit DSCP code point from RFC 5865 was added
(PR #1490).

* A fix for preventing a crash when RSA public key path doesn't
exist was fixed (PR #1488/Issue #1471).

iperf-3.13 2023-02-16
---------------------

Expand Down
20 changes: 10 additions & 10 deletions configure
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.71 for iperf 3.13.
# Generated by GNU Autoconf 2.71 for iperf 3.15.
#
# Report bugs to <https://github.com/esnet/iperf>.
#
Expand Down Expand Up @@ -621,8 +621,8 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='iperf'
PACKAGE_TARNAME='iperf'
PACKAGE_VERSION='3.13'
PACKAGE_STRING='iperf 3.13'
PACKAGE_VERSION='3.15'
PACKAGE_STRING='iperf 3.15'
PACKAGE_BUGREPORT='https://github.com/esnet/iperf'
PACKAGE_URL='https://software.es.net/iperf/'

Expand Down Expand Up @@ -1366,7 +1366,7 @@ if test "$ac_init_help" = "long"; then
# 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.13 to adapt to many kinds of systems.
\`configure' configures iperf 3.15 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
Expand Down Expand Up @@ -1437,7 +1437,7 @@ fi

if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of iperf 3.13:";;
short | recursive ) echo "Configuration of iperf 3.15:";;
esac
cat <<\_ACEOF
Expand Down Expand Up @@ -1555,7 +1555,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
iperf configure 3.13
iperf configure 3.15
generated by GNU Autoconf 2.71
Copyright (C) 2021 Free Software Foundation, Inc.
Expand Down Expand Up @@ -1833,7 +1833,7 @@ cat >config.log <<_ACEOF
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.13, which was
It was created by iperf $as_me 3.15, which was
generated by GNU Autoconf 2.71. Invocation command line was
$ $0$ac_configure_args_raw
Expand Down Expand Up @@ -3200,7 +3200,7 @@ fi

# Define the identity of the package.
PACKAGE='iperf'
VERSION='3.13'
VERSION='3.15'


printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
Expand Down Expand Up @@ -15579,7 +15579,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# 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.13, which was
This file was extended by iperf $as_me 3.15, which was
generated by GNU Autoconf 2.71. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
Expand Down Expand Up @@ -15648,7 +15648,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config='$ac_cs_config_escaped'
ac_cs_version="\\
iperf config.status 3.13
iperf config.status 3.15
configured by $0, generated by GNU Autoconf 2.71,
with options \\"\$ac_cs_config\\"
Expand Down
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

# Initialize the autoconf system for the specified tool, version and mailing list
AC_PREREQ([2.71])
AC_INIT([iperf],[3.13],[https://github.com/esnet/iperf],[iperf],[https://software.es.net/iperf/])
AC_INIT([iperf],[3.15],[https://github.com/esnet/iperf],[iperf],[https://software.es.net/iperf/])
m4_include([config/ax_check_openssl.m4])
m4_include([config/iperf_config_static_bin.m4])
AC_LANG(C)
Expand Down
2 changes: 0 additions & 2 deletions docs/_esnet/templates/navbar.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@
</button>
<a class="navbar-brand" href="{{ pathto(master_doc) }}">
{%- block sidebarlogo %}
<!-- LOGO: {{ logo }} {{ pathto('_static/' + logo, 1) }} -->

{%- if logo %}<img src="{{ pathto('_static/' + logo, 1) }}">{%- endif %}
{%- endblock %}
{% if theme_navbar_title -%}{{ theme_navbar_title|e }}{%- else -%}{{ project|e }}{%- endif -%}
Expand Down
7 changes: 4 additions & 3 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -52,10 +52,10 @@
# built documents.
#
# The short X.Y version.
version = '3.13'
version = '3.15'
# The full version, including alpha/beta/rc tags.

release = '3.13'
release = '3.15'

# The language for content autogenerated by Sphinx. Refer to documentation
# for a list of supported languages.
Expand Down Expand Up @@ -128,7 +128,8 @@

# The name of an image file (relative to this directory) to place at the top
# of the sidebar.
html_logo = "_esnet/static/ESnet_Final_Logos_All_Blue_Circle_Stamp_RGB.png"
html_logo = "_static/esnet/ESnet_Final_Logos_All_Blue_Circle_Stamp_RGB.png"



# The name of an image file (within the static path) to use as favicon of the
Expand Down
29 changes: 29 additions & 0 deletions docs/news.rst
Original file line number Diff line number Diff line change
@@ -1,6 +1,35 @@
iperf3 Project News
===================

2023-09-14: iperf-3.15 released
--------------------------------
| URL: https://downloads.es.net/pub/iperf/iperf-3.15.tar.gz
| SHA256: ``bdb77c11f72bce90214883159577fa24412013e62b2083cf5f54391d79b1d8ff``
iperf 3.15 fixes that could cause an iperf3 server process to hang
waiting for input on the control connection. For more information,
please see:

https://downloads.es.net/pub/iperf/esnet-secadv-2023-0002.txt.asc

This version of iperf3 also includes several other minor bug fixes,
which are summarized in the release notes.

2023-07-07: iperf-3.14 released
--------------------------------
| URL: https://downloads.es.net/pub/iperf/iperf-3.14.tar.gz
| SHA256: ``723fcc430a027bc6952628fa2a3ac77584a1d0bd328275e573fc9b206c155004``
iperf 3.14 fixes a memory allocation hazard that allowed a remote user
to crash an iperf3 process (server or client).

More information on this specific fix can be found at:

https://downloads.es.net/pub/iperf/esnet-secadv-2023-0001.txt.asc

This version of iperf3 also includes a number of minor bug fixes,
which are summarized in the release notes.

2023-02-16: iperf-3.13 released
----------------------------------
| URL: https://downloads.es.net/pub/iperf/iperf-3.13.tar.gz
Expand Down
4 changes: 3 additions & 1 deletion docs/obtaining.rst
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ of binary packages for various operating systems and distributions:
* Fedora / RedHat Linux / CentOS / Rocky: `iperf3
<https://packages.fedoraproject.org/pkgs/iperf3/iperf3/>`_ and
`iperf3-devel
<https://packages.fedoraproject.org/pkgs/iperf3/iperf3-devel/`_ in Fedora
<https://packages.fedoraproject.org/pkgs/iperf3/iperf3-devel/>`_ in Fedora
19 and 20 and in Fedora EPEL 5, 6, and 7. iperf3 is included as a
part of RedHat Enterprise Linux 7.4 and later (as well as CentOS 7.4
and later, and all versions of Rocky Linux), and can generally be
Expand All @@ -31,6 +31,8 @@ of binary packages for various operating systems and distributions:
locations, including `<https://files.budman.pw/>`_
(`discussion thread
<https://www.neowin.net/forum/topic/1234695-iperf/>`_).
* Android: iperf3 binaries for Android can be found in several
locations, including `<https://github.com/davidBar-On/android-iperf3/>`_.

Source Distributions
--------------------
Expand Down
11 changes: 9 additions & 2 deletions src/cjson.c
Original file line number Diff line number Diff line change
Expand Up @@ -99,6 +99,13 @@
# else
# define PRIu64 "llu"
# endif
# ifndef PRId64
# if sizeof(long) == 8
# define PRId64 "ld"
# else
# define PRId64 "lld"
# endif
# endif
# endif
#endif

Expand Down Expand Up @@ -134,7 +141,7 @@ CJSON_PUBLIC(double) cJSON_GetNumberValue(const cJSON * const item)
{
if (!cJSON_IsNumber(item))
{
return (double) NAN;
return (double) NAN; // cppcheck-suppress invalidFunctionArg
}

return item->valuedouble;
Expand Down Expand Up @@ -588,7 +595,7 @@ static cJSON_bool print_number(const cJSON * const item, printbuffer * const out
}
else if(d == (double)item->valueint)
{
length = sprintf((char*)number_buffer, "%" PRIu64, item->valueint);
length = sprintf((char*)number_buffer, "%" PRId64, item->valueint);
}
else
{
Expand Down
28 changes: 14 additions & 14 deletions src/iperf.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,13 +85,13 @@ struct iperf_interval_results
float interval_duration;

/* for UDP */
int interval_packet_count;
int interval_outoforder_packets;
int interval_cnt_error;
int packet_count;
int64_t interval_packet_count;
int64_t interval_outoforder_packets;
int64_t interval_cnt_error;
int64_t packet_count;
double jitter;
int outoforder_packets;
int cnt_error;
int64_t outoforder_packets;
int64_t cnt_error;

int omitted;
#if (defined(linux) || defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__)) && \
Expand Down Expand Up @@ -199,16 +199,16 @@ struct iperf_stream
* for udp measurements - This can be a structure outside stream, and
* stream can have a pointer to this
*/
int packet_count;
int peer_packet_count;
int peer_omitted_packet_count;
int omitted_packet_count;
int64_t packet_count;
int64_t peer_packet_count;
int64_t peer_omitted_packet_count;
int64_t omitted_packet_count;
double jitter;
double prev_transit;
int outoforder_packets;
int omitted_outoforder_packets;
int cnt_error;
int omitted_cnt_error;
int64_t outoforder_packets;
int64_t omitted_outoforder_packets;
int64_t cnt_error;
int64_t omitted_cnt_error;
uint64_t target;

struct sockaddr_storage local_addr;
Expand Down
3 changes: 1 addition & 2 deletions src/iperf3.1
Original file line number Diff line number Diff line change
Expand Up @@ -363,8 +363,7 @@ i.e. 52, 064 and 0x34 all specify the same value.
.TP
.BR "--dscp " \fIdscp\fR
set the IP DSCP bits. Both numeric and symbolic values are accepted. Numeric
values can be specified in decimal, octal and hex (see --tos above). To set
both the DSCP bits and the ECN bits, use --tos.
values can be specified in decimal, octal and hex (see --tos above).
.TP
.BR -L ", " --flowlabel " \fIn\fR"
set the IPv6 flow label (currently only supported on Linux)
Expand Down
Loading

0 comments on commit c50c58b

Please sign in to comment.