summaryrefslogtreecommitdiff
path: root/net-analyzer/tcpreplay
diff options
context:
space:
mode:
authorJeroen Roovers <jer@gentoo.org>2016-11-19 10:20:28 +0100
committerJeroen Roovers <jer@gentoo.org>2016-11-19 10:20:28 +0100
commit7335969291b9d994b6dfc031b713c71b16c20e58 (patch)
tree6009102be0138362a90ef5c0889ce4690af021c4 /net-analyzer/tcpreplay
parent15b0f78b54eba02a7fa265909ca52828c0fdc1b7 (diff)
downloadgentoo-7335969291b9d994b6dfc031b713c71b16c20e58.tar.gz
gentoo-7335969291b9d994b6dfc031b713c71b16c20e58.tar.xz
net-analyzer/tcpreplay: Add MAXPACKET patch (bug #588302).
Package-Manager: portage-2.3.2
Diffstat (limited to 'net-analyzer/tcpreplay')
-rw-r--r--net-analyzer/tcpreplay/files/tcpreplay-4.1.1-MAXPACKET.patch22
-rw-r--r--net-analyzer/tcpreplay/tcpreplay-4.1.1-r1.ebuild78
2 files changed, 100 insertions, 0 deletions
diff --git a/net-analyzer/tcpreplay/files/tcpreplay-4.1.1-MAXPACKET.patch b/net-analyzer/tcpreplay/files/tcpreplay-4.1.1-MAXPACKET.patch
new file mode 100644
index 00000000000..ccb2dca5bb9
--- /dev/null
+++ b/net-analyzer/tcpreplay/files/tcpreplay-4.1.1-MAXPACKET.patch
@@ -0,0 +1,22 @@
+--- a/src/defines.h.in
++++ b/src/defines.h.in
+@@ -145,7 +145,7 @@
+ #define DEFAULT_MTU 1500 /* Max Transmission Unit of standard ethernet
+ * don't forget *frames* are MTU + L2 header! */
+
+-#define MAXPACKET 65535 /* was 16436 linux loopback, but maybe something is bigger then
++#define MAXPACKET 65549 /* was 16436 linux loopback, but maybe something is bigger then
+ linux loopback */
+
+ #define MAX_SNAPLEN 65535 /* tell libpcap to capture the entire packet */
+--- a/src/tcprewrite.c
++++ b/src/tcprewrite.c
+@@ -253,6 +253,8 @@ rewrite_packets(tcpedit_t *tcpedit, pcap_t *pin, pcap_dumper_t *pout)
+ packetnum++;
+ dbgx(2, "packet " COUNTER_SPEC " caplen %d", packetnum, pkthdr.caplen);
+
++ if (pkthdr.caplen > MAXPACKET)
++ errx(-1, "Frame too big, caplen %d exceeds %d", pkthdr.caplen, MAXPACKET);
+ /*
+ * copy over the packet so we can pad it out if necessary and
+ * because pcap_next() returns a const ptr
diff --git a/net-analyzer/tcpreplay/tcpreplay-4.1.1-r1.ebuild b/net-analyzer/tcpreplay/tcpreplay-4.1.1-r1.ebuild
new file mode 100644
index 00000000000..93eb6336595
--- /dev/null
+++ b/net-analyzer/tcpreplay/tcpreplay-4.1.1-r1.ebuild
@@ -0,0 +1,78 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+inherit autotools flag-o-matic
+
+DESCRIPTION="utilities for editing and replaying previously captured network traffic"
+HOMEPAGE="http://tcpreplay.appneta.com/ https://github.com/appneta/tcpreplay"
+LICENSE="BSD GPL-3"
+SRC_URI="https://github.com/appneta/${PN}/releases/download/v${PV}/${P}.tar.gz"
+
+SLOT="0"
+KEYWORDS="~amd64 ~sparc ~x86"
+IUSE="debug pcapnav +tcpdump"
+
+DEPEND="
+ >=sys-devel/autogen-5.18.4[libopts]
+ dev-libs/libdnet
+ >=net-libs/libpcap-0.9
+ tcpdump? ( net-analyzer/tcpdump )
+ pcapnav? ( net-libs/libpcapnav )
+"
+RDEPEND="${DEPEND}"
+
+DOCS=(
+ docs/{CHANGELOG,CREDIT,HACKING,TODO}
+)
+PATCHES=(
+ "${FILESDIR}"/${PN}-4.1.0-enable-pcap_findalldevs.patch
+ "${FILESDIR}"/${PN}-4.1.1-MAXPACKET.patch
+)
+
+src_prepare() {
+ default
+
+ sed -i \
+ -e 's|-O3||g' \
+ -e 's|AM_CONFIG_HEADER|AC_CONFIG_HEADERS|g' \
+ configure.ac || die
+ sed -i \
+ -e 's|#include <dnet.h>|#include <dnet/eth.h>|g' \
+ src/common/sendpacket.c || die
+ sed -i \
+ -e 's|@\([A-Z_]*\)@|$(\1)|g' \
+ -e '/tcpliveplay_CFLAGS/s|$| $(LDNETINC)|g' \
+ -e '/tcpliveplay_LDADD/s|$| $(LDNETLIB)|g' \
+ src/Makefile.am || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # By default it uses static linking. Avoid that, bug 252940
+ econf \
+ $(use_enable debug) \
+ $(use_with pcapnav pcapnav-config /usr/bin/pcapnav-config) \
+ $(use_with tcpdump tcpdump /usr/sbin/tcpdump) \
+ --disable-local-libopts \
+ --enable-dynamic-link \
+ --enable-shared \
+ --with-libdnet \
+ --with-testnic2=lo \
+ --with-testnic=lo
+}
+
+src_test() {
+ if [[ ! ${EUID} -eq 0 ]]; then
+ ewarn "Some tests were disabled due to FEATURES=userpriv"
+ ewarn "To run all tests issue the following command as root:"
+ ewarn " # make -C ${S}/test"
+ emake -j1 -C test tcpprep || die "self test failed - see ${S}/test/test.log"
+ else
+ emake -j1 test || {
+ ewarn "Note, that some tests require eth0 iface to be UP." ;
+ die "self test failed - see ${S}/test/test.log" ; }
+ fi
+}