commit:     7335969291b9d994b6dfc031b713c71b16c20e58
Author:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 19 09:20:28 2016 +0000
Commit:     Jeroen Roovers <jer <AT> gentoo <DOT> org>
CommitDate: Sat Nov 19 09:20:28 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=73359692

net-analyzer/tcpreplay: Add MAXPACKET patch (bug #588302).

Package-Manager: portage-2.3.2

 .../files/tcpreplay-4.1.1-MAXPACKET.patch          | 22 ++++++
 net-analyzer/tcpreplay/tcpreplay-4.1.1-r1.ebuild   | 78 ++++++++++++++++++++++
 2 files changed, 100 insertions(+)

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 00000000..ccb2dca
--- /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 00000000..93eb633
--- /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
+}

Reply via email to