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 +}