mirror of https://github.com/hak5/openwrt-owl.git
iperf3: update to 3.3 and refresh patches
Taking the same patchset I've submitted upstream for inclusion. Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>owl
parent
bd60c9063d
commit
e03dcf494e
|
@ -8,12 +8,12 @@
|
||||||
include $(TOPDIR)/rules.mk
|
include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=iperf
|
PKG_NAME:=iperf
|
||||||
PKG_VERSION:=3.2
|
PKG_VERSION:=3.3
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=1
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
||||||
PKG_SOURCE_URL:=http://downloads.es.net/pub/iperf
|
PKG_SOURCE_URL:=http://downloads.es.net/pub/iperf
|
||||||
PKG_HASH:=f207b36f861485845dbdf09f909c62f3d2222a3cf3d2682095aede8213cd9c1d
|
PKG_HASH:=6f596271251056bffc11bbb8f17d4244ad9a7d4a317c2459fdbb853ae51284d8
|
||||||
|
|
||||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||||
PKG_LICENSE:=BSD-3-Clause
|
PKG_LICENSE:=BSD-3-Clause
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
commit 3fd1a2ae907bff2d7593c0bb9944aa05eca7b58d
|
|
||||||
Author: ralcini <roberto.alcini@gmail.com>
|
|
||||||
Date: Mon Aug 14 22:43:38 2017 +0200
|
|
||||||
|
|
||||||
fix for issue #624 - force build without openssl (#631)
|
|
||||||
|
|
||||||
* fix: now --without-openssl configure flags works
|
|
||||||
enh: if openssl support is required and no valid installation is found, now it raise an error
|
|
||||||
|
|
||||||
* enh: added warning if building without openssl (iperf_auth disabled)
|
|
||||||
|
|
||||||
diff --git a/configure.ac b/configure.ac
|
|
||||||
index 3c56cb3..79f3869 100644
|
|
||||||
--- a/configure.ac
|
|
||||||
+++ b/configure.ac
|
|
||||||
@@ -101,13 +101,18 @@ AC_CHECK_HEADERS([netinet/sctp.h],
|
|
||||||
#endif
|
|
||||||
])
|
|
||||||
|
|
||||||
-# Check for OPENSSL support
|
|
||||||
-AX_CHECK_OPENSSL(
|
|
||||||
- AC_DEFINE([HAVE_SSL], [1], [OpenSSL Is Available])
|
|
||||||
-)
|
|
||||||
-LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
|
|
||||||
-LIBS="$OPENSSL_LIBS $LIBS"
|
|
||||||
-CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS"
|
|
||||||
+if test "x$with_openssl" = "xno"; then
|
|
||||||
+ AC_MSG_WARN( [Building without OpenSSL; disabling iperf_auth functionality.] )
|
|
||||||
+else
|
|
||||||
+ # Check for OPENSSL support
|
|
||||||
+ AX_CHECK_OPENSSL(
|
|
||||||
+ [ AC_DEFINE([HAVE_SSL], [1], [OpenSSL Is Available]) ],
|
|
||||||
+ [ AC_MSG_FAILURE([--with-openssl was given, but test for openssl failed]) ]
|
|
||||||
+ )
|
|
||||||
+ LDFLAGS="$LDFLAGS $OPENSSL_LDFLAGS"
|
|
||||||
+ LIBS="$OPENSSL_LIBS $LIBS"
|
|
||||||
+ CPPFLAGS="$OPENSSL_INCLUDES $CPPFLAGS"
|
|
||||||
+fi
|
|
||||||
|
|
||||||
# Check for TCP_CONGESTION sockopt (believed to be Linux and FreeBSD only)
|
|
||||||
AC_CACHE_CHECK([TCP_CONGESTION socket option],
|
|
|
@ -0,0 +1,300 @@
|
||||||
|
The following patches are taken directly from:
|
||||||
|
|
||||||
|
https://github.com/esnet/iperf/pull/664
|
||||||
|
|
||||||
|
as an upstream submission.
|
||||||
|
|
||||||
|
commit b63d41b25f49a76d0be66edfb61bd4cb68921d55
|
||||||
|
Author: Philip Prindeville <philipp@redfish-solutions.com>
|
||||||
|
Date: Tue Oct 31 13:41:08 2017 -0600
|
||||||
|
|
||||||
|
Fix warnings about _GNU_SOURCE being redefined.
|
||||||
|
|
||||||
|
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
|
||||||
|
|
||||||
|
diff --git a/src/iperf.h b/src/iperf.h
|
||||||
|
index bb951dc..b656784 100755
|
||||||
|
--- a/src/iperf.h
|
||||||
|
+++ b/src/iperf.h
|
||||||
|
@@ -36,7 +36,9 @@
|
||||||
|
#endif
|
||||||
|
#include <sys/select.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
-#define _GNU_SOURCE
|
||||||
|
+#ifndef _GNU_SOURCE
|
||||||
|
+# define _GNU_SOURCE
|
||||||
|
+#endif
|
||||||
|
#include <netinet/tcp.h>
|
||||||
|
|
||||||
|
#if defined(HAVE_CPUSET_SETAFFINITY)
|
||||||
|
diff --git a/src/iperf_api.c b/src/iperf_api.c
|
||||||
|
index ab30b93..9e41238 100755
|
||||||
|
--- a/src/iperf_api.c
|
||||||
|
+++ b/src/iperf_api.c
|
||||||
|
@@ -24,7 +24,9 @@
|
||||||
|
* This code is distributed under a BSD style license, see the LICENSE file
|
||||||
|
* for complete information.
|
||||||
|
*/
|
||||||
|
-#define _GNU_SOURCE
|
||||||
|
+#ifndef _GNU_SOURCE
|
||||||
|
+# define _GNU_SOURCE
|
||||||
|
+#endif
|
||||||
|
#define __USE_GNU
|
||||||
|
|
||||||
|
#include "iperf_config.h"
|
||||||
|
|
||||||
|
commit 315254cfc5f5682627f4a46ade3100bc3c64cfcc
|
||||||
|
Author: Philip Prindeville <philipp@redfish-solutions.com>
|
||||||
|
Date: Tue Oct 31 13:42:58 2017 -0600
|
||||||
|
|
||||||
|
Fix warnings of format-specified mismatching type
|
||||||
|
|
||||||
|
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
|
||||||
|
|
||||||
|
diff --git a/src/iperf_tcp.c b/src/iperf_tcp.c
|
||||||
|
index 91cf032..6f86d5d 100644
|
||||||
|
--- a/src/iperf_tcp.c
|
||||||
|
+++ b/src/iperf_tcp.c
|
||||||
|
@@ -24,8 +24,6 @@
|
||||||
|
* This code is distributed under a BSD style license, see the LICENSE
|
||||||
|
* file for complete information.
|
||||||
|
*/
|
||||||
|
-#include "iperf_config.h"
|
||||||
|
-
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
@@ -44,6 +42,12 @@
|
||||||
|
#include "net.h"
|
||||||
|
#include "cjson.h"
|
||||||
|
|
||||||
|
+#if defined(HAVE_INTTYPES_H)
|
||||||
|
+# include <inttypes.h>
|
||||||
|
+#else
|
||||||
|
+# define PRIu64 "llu"
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
#if defined(HAVE_FLOWLABEL)
|
||||||
|
#include "flowlabel.h"
|
||||||
|
#endif /* HAVE_FLOWLABEL */
|
||||||
|
@@ -90,7 +94,7 @@ iperf_tcp_send(struct iperf_stream *sp)
|
||||||
|
sp->result->bytes_sent_this_interval += r;
|
||||||
|
|
||||||
|
if (sp->test->debug)
|
||||||
|
- printf("sent %d bytes of %d, total %llu\n", r, sp->settings->blksize, sp->result->bytes_sent);
|
||||||
|
+ printf("sent %d bytes of %d, total %" PRIu64 "\n", r, sp->settings->blksize, sp->result->bytes_sent);
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
diff --git a/src/iperf_udp.c b/src/iperf_udp.c
|
||||||
|
index a2ea6d0..d04ae44 100644
|
||||||
|
--- a/src/iperf_udp.c
|
||||||
|
+++ b/src/iperf_udp.c
|
||||||
|
@@ -48,6 +48,12 @@
|
||||||
|
#include "cjson.h"
|
||||||
|
#include "portable_endian.h"
|
||||||
|
|
||||||
|
+#if defined(HAVE_INTTYPES_H)
|
||||||
|
+# include <inttypes.h>
|
||||||
|
+#else
|
||||||
|
+# define PRIu64 "llu"
|
||||||
|
+#endif
|
||||||
|
+
|
||||||
|
/* iperf_udp_recv
|
||||||
|
*
|
||||||
|
* receives the data for UDP
|
||||||
|
@@ -98,7 +104,7 @@ iperf_udp_recv(struct iperf_stream *sp)
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sp->test->debug)
|
||||||
|
- fprintf(stderr, "pcount %llu packet_count %d\n", pcount, sp->packet_count);
|
||||||
|
+ fprintf(stderr, "pcount %" PRIu64 " packet_count %d\n", pcount, sp->packet_count);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Try to handle out of order packets. The way we do this
|
||||||
|
@@ -141,7 +147,7 @@ iperf_udp_recv(struct iperf_stream *sp)
|
||||||
|
|
||||||
|
/* Log the out-of-order packet */
|
||||||
|
if (sp->test->debug)
|
||||||
|
- fprintf(stderr, "OUT OF ORDER - incoming packet sequence %llu but expected sequence %d on stream %d", pcount, sp->packet_count, sp->socket);
|
||||||
|
+ fprintf(stderr, "OUT OF ORDER - incoming packet sequence %" PRIu64 " but expected sequence %d on stream %d", pcount, sp->packet_count, sp->socket);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
@@ -220,7 +226,7 @@ iperf_udp_send(struct iperf_stream *sp)
|
||||||
|
sp->result->bytes_sent_this_interval += r;
|
||||||
|
|
||||||
|
if (sp->test->debug)
|
||||||
|
- printf("sent %d bytes of %d, total %llu\n", r, sp->settings->blksize, sp->result->bytes_sent);
|
||||||
|
+ printf("sent %d bytes of %d, total %" PRIu64 "\n", r, sp->settings->blksize, sp->result->bytes_sent);
|
||||||
|
|
||||||
|
return r;
|
||||||
|
}
|
||||||
|
|
||||||
|
commit 9a66b3b0349e0a158bb4940b668a5cbc7c245762
|
||||||
|
Author: Philip Prindeville <philipp@redfish-solutions.com>
|
||||||
|
Date: Tue Oct 31 13:44:34 2017 -0600
|
||||||
|
|
||||||
|
Simplify endianness checks
|
||||||
|
|
||||||
|
Linux can be built with too many types of C run-time library and it's
|
||||||
|
not reasonable to have to enumerate all of them, especially since at
|
||||||
|
least one of them (MUSL) goes out of its way to not be easily
|
||||||
|
detectable.
|
||||||
|
|
||||||
|
Instead, leverage autoconf better for Linux/BSD to detect either
|
||||||
|
<endian.h> or <sys/endian.h> directly.
|
||||||
|
|
||||||
|
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index f57e83f..cfb42ac 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -101,6 +101,14 @@ AC_CHECK_HEADERS([netinet/sctp.h],
|
||||||
|
#endif
|
||||||
|
])
|
||||||
|
|
||||||
|
+AC_CHECK_HEADER([endian.h],
|
||||||
|
+ AC_DEFINE([HAVE_ENDIAN_H], [1], [Define to 1 if you have the <endian.h> header file.]),
|
||||||
|
+ AC_CHECK_HEADER([sys/endian.h],
|
||||||
|
+ AC_DEFINE([HAVE_SYS_ENDIAN_H], [1], [Define to 1 if you have the <sys/endian.h> header file.]),
|
||||||
|
+ AC_MSG_WARN([Couldn't find endian.h or sys/endian.h files: doing compile-time tests.])
|
||||||
|
+ )
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
if test "x$with_openssl" = "xno"; then
|
||||||
|
AC_MSG_WARN( [Building without OpenSSL; disabling iperf_auth functionality.] )
|
||||||
|
else
|
||||||
|
diff --git a/src/iperf_config.h.in b/src/iperf_config.h.in
|
||||||
|
index bd03935..a9e51ec 100644
|
||||||
|
--- a/src/iperf_config.h.in
|
||||||
|
+++ b/src/iperf_config.h.in
|
||||||
|
@@ -9,6 +9,9 @@
|
||||||
|
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||||
|
#undef HAVE_DLFCN_H
|
||||||
|
|
||||||
|
+/* Define to 1 if you have the <endian.h> header file. */
|
||||||
|
+#undef HAVE_ENDIAN_H
|
||||||
|
+
|
||||||
|
/* Have IPv6 flowlabel support. */
|
||||||
|
#undef HAVE_FLOWLABEL
|
||||||
|
|
||||||
|
@@ -54,6 +57,9 @@
|
||||||
|
/* Define to 1 if the system has the type `struct sctp_assoc_value'. */
|
||||||
|
#undef HAVE_STRUCT_SCTP_ASSOC_VALUE
|
||||||
|
|
||||||
|
+/* Define to 1 if you have the <sys/endian.h> header file. */
|
||||||
|
+#undef HAVE_SYS_ENDIAN_H
|
||||||
|
+
|
||||||
|
/* Define to 1 if you have the <sys/socket.h> header file. */
|
||||||
|
#undef HAVE_SYS_SOCKET_H
|
||||||
|
|
||||||
|
diff --git a/src/portable_endian.h b/src/portable_endian.h
|
||||||
|
index b86d37a..5dbc6e5 100644
|
||||||
|
--- a/src/portable_endian.h
|
||||||
|
+++ b/src/portable_endian.h
|
||||||
|
@@ -10,14 +10,33 @@
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
|
-// GLIBC / Linux with endian(3) support, which was added in glibc 2.9.
|
||||||
|
-// Intended to support CentOS 6 and newer.
|
||||||
|
-#if defined(__linux__) && \
|
||||||
|
- ((__GLIBC__ > 3) || \
|
||||||
|
- (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9))
|
||||||
|
-
|
||||||
|
+#if defined(HAVE_ENDIAN_H)
|
||||||
|
# include <endian.h>
|
||||||
|
|
||||||
|
+#elif defined(HAVE_SYS_ENDIAN_H)
|
||||||
|
+# include <sys/endian.h>
|
||||||
|
+
|
||||||
|
+# if defined(__OpenBSD__)
|
||||||
|
+
|
||||||
|
+# define be16toh(x) betoh16(x)
|
||||||
|
+# define le16toh(x) letoh16(x)
|
||||||
|
+
|
||||||
|
+# define be32toh(x) betoh32(x)
|
||||||
|
+# define le32toh(x) letoh32(x)
|
||||||
|
+
|
||||||
|
+# define be64toh(x) betoh64(x)
|
||||||
|
+# define le64toh(x) letoh64(x)
|
||||||
|
+
|
||||||
|
+# elif defined(__sgi)
|
||||||
|
+
|
||||||
|
+# include <netinet/in.h>
|
||||||
|
+# include <inttypes.h>
|
||||||
|
+
|
||||||
|
+# define be64toh(x) (x)
|
||||||
|
+# define htobe64(x) (x)
|
||||||
|
+
|
||||||
|
+# endif
|
||||||
|
+
|
||||||
|
#elif defined(__CYGWIN__)
|
||||||
|
|
||||||
|
# include <endian.h>
|
||||||
|
@@ -46,32 +65,6 @@
|
||||||
|
# define __LITTLE_ENDIAN LITTLE_ENDIAN
|
||||||
|
# define __PDP_ENDIAN PDP_ENDIAN
|
||||||
|
|
||||||
|
-#elif defined(__OpenBSD__)
|
||||||
|
-
|
||||||
|
-# include <sys/endian.h>
|
||||||
|
-
|
||||||
|
-# define be16toh(x) betoh16(x)
|
||||||
|
-# define le16toh(x) letoh16(x)
|
||||||
|
-
|
||||||
|
-# define be32toh(x) betoh32(x)
|
||||||
|
-# define le32toh(x) letoh32(x)
|
||||||
|
-
|
||||||
|
-# define be64toh(x) betoh64(x)
|
||||||
|
-# define le64toh(x) letoh64(x)
|
||||||
|
-
|
||||||
|
-#elif defined(__NetBSD__) || defined(__FreeBSD__) || defined(__DragonFly__)
|
||||||
|
-
|
||||||
|
-# include <sys/endian.h>
|
||||||
|
-
|
||||||
|
-#elif defined(__sgi)
|
||||||
|
-
|
||||||
|
-# include <sys/endian.h>
|
||||||
|
-# include <netinet/in.h>
|
||||||
|
-# include <inttypes.h>
|
||||||
|
-
|
||||||
|
-# define be64toh(x) (x)
|
||||||
|
-# define htobe64(x) (x)
|
||||||
|
-
|
||||||
|
#elif defined(__sun) && defined(__SVR4)
|
||||||
|
|
||||||
|
# include <sys/types.h>
|
||||||
|
|
||||||
|
commit 7e7285d0daf92ef7beda8f78a6f63cc647a77f38
|
||||||
|
Author: Philip Prindeville <philipp@redfish-solutions.com>
|
||||||
|
Date: Tue Oct 31 13:48:06 2017 -0600
|
||||||
|
|
||||||
|
Sys headers should not be included directly
|
||||||
|
|
||||||
|
There's usually a top-level header which then includes the sys/
|
||||||
|
descendent.
|
||||||
|
|
||||||
|
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
|
||||||
|
|
||||||
|
diff --git a/src/net.c b/src/net.c
|
||||||
|
index af456cb..afd0022 100644
|
||||||
|
--- a/src/net.c
|
||||||
|
+++ b/src/net.c
|
||||||
|
@@ -31,13 +31,12 @@
|
||||||
|
#include <errno.h>
|
||||||
|
#include <sys/socket.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
-#include <sys/errno.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <netinet/tcp.h>
|
||||||
|
#include <assert.h>
|
||||||
|
#include <netdb.h>
|
||||||
|
#include <string.h>
|
||||||
|
-#include <sys/fcntl.h>
|
||||||
|
+#include <fcntl.h>
|
||||||
|
|
||||||
|
#ifdef HAVE_SENDFILE
|
||||||
|
#ifdef linux
|
|
@ -1,17 +0,0 @@
|
||||||
commit 31d5b6b580a356c5149dbc4f53118b7f83c60822
|
|
||||||
Author: Philip Prindeville <philipp@redfish-solutions.com>
|
|
||||||
Date: Sun Jul 30 18:54:46 2017 -0600
|
|
||||||
Subject: Add required RSA header for OpenSSL
|
|
||||||
|
|
||||||
Signed-off-by: Philip Prindeville <philipp@redfish-solutions.com>
|
|
||||||
|
|
||||||
--- a/src/iperf_auth.c 2017-06-26 11:42:56.000000000 -0600
|
|
||||||
+++ b/src/iperf_auth.c 2017-07-30 17:42:43.070447875 -0600
|
|
||||||
@@ -40,6 +40,7 @@
|
|
||||||
#include <openssl/pem.h>
|
|
||||||
#include <openssl/sha.h>
|
|
||||||
#include <openssl/buffer.h>
|
|
||||||
+#include <openssl/rsa.h>
|
|
||||||
|
|
||||||
void sha256(const char *string, char outputBuffer[65])
|
|
||||||
{
|
|
Loading…
Reference in New Issue