diff options
-rw-r--r-- | package/tcpdump/tcpdump-4.1.1-vfork.patch | 127 | ||||
-rw-r--r-- | package/tcpdump/tcpdump.mk | 12 |
2 files changed, 6 insertions, 133 deletions
diff --git a/package/tcpdump/tcpdump-4.1.1-vfork.patch b/package/tcpdump/tcpdump-4.1.1-vfork.patch deleted file mode 100644 index 8213f35f5..000000000 --- a/package/tcpdump/tcpdump-4.1.1-vfork.patch +++ /dev/null @@ -1,127 +0,0 @@ -https://sourceforge.net/tracker/?func=detail&aid=3120897&group_id=53066&atid=469575 - -From 6f8927c609d1f986a45010b7acae0eb570668642 Mon Sep 17 00:00:00 2001 -From: Mike Frysinger <vapier@gentoo.org> -Date: Sat, 27 Nov 2010 17:18:05 -0500 -Subject: [PATCH] add support for nommu systems - -Rather than hardcode the WIN32 define, add proper fork checks to the -configure script and check those. This fixes building for nommu systems -which lack the fork function. - -While we're here though, add support for this functionality via vfork -so that it does work on nommu systems. And fix an old bug where we -exit properly in the forked child when the exec failed instead of just -returning to the calling code (which isn't expecting it). - -Signed-off-by: Mike Frysinger <vapier@gentoo.org> ---- - ---- tcpdump-4.0.0/config.h.in -+++ tcpdump-4.0.0/config.h.in -@@ -151,6 +151,9 @@ - /* Define to 1 if you have the <fcntl.h> header file. */ - #undef HAVE_FCNTL_H - -+/* Define to 1 if you have the `fork' function. */ -+#undef HAVE_FORK -+ - /* Define to 1 if you have the `getnameinfo' function. */ - #undef HAVE_GETNAMEINFO - -@@ -274,6 +277,9 @@ - /* Define to 1 if you have the <unistd.h> header file. */ - #undef HAVE_UNISTD_H - -+/* Define to 1 if you have the `vfork' function. */ -+#undef HAVE_VFORK -+ - /* Define to 1 if you have the `vfprintf' function. */ - #undef HAVE_VFPRINTF - ---- tcpdump-4.0.0/configure -+++ tcpdump-4.0.0/configure -@@ -7976,7 +7976,7 @@ done - - - --for ac_func in strftime -+for ac_func in fork vfork strftime - do - as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` - { echo "$as_me:$LINENO: checking for $ac_func" >&5 -diff --git a/tcpdump.c b/tcpdump.c -index c8da36b..abf3e69 100644 ---- a/tcpdump.c -+++ b/tcpdump.c -@@ -1250,8 +1250,10 @@ main(int argc, char **argv) - (void)setsignal(SIGPIPE, cleanup); - (void)setsignal(SIGTERM, cleanup); - (void)setsignal(SIGINT, cleanup); -- (void)setsignal(SIGCHLD, child_cleanup); - #endif /* WIN32 */ -+#if defined(HAVE_FORK) || defined(HAVE_VFORK) -+ (void)setsignal(SIGCHLD, child_cleanup); -+#endif - /* Cooperate with nohup(1) */ - #ifndef WIN32 - if ((oldhandler = setsignal(SIGHUP, cleanup)) != SIG_DFL) -@@ -1464,13 +1466,13 @@ cleanup(int signo _U_) - On windows, we do not use a fork, so we do not care less about - waiting a child processes to die - */ --#ifndef WIN32 -+#if defined(HAVE_FORK) || defined(HAVE_VFORK) - static RETSIGTYPE - child_cleanup(int signo _U_) - { - wait(NULL); - } --#endif /* WIN32 */ -+#endif /* HAVE_FORK || HAVE_VFORK */ - - static void - info(register int verbose) -@@ -1514,11 +1516,15 @@ info(register int verbose) - infoprint = 0; - } - --#ifndef WIN32 -+#if defined(HAVE_FORK) || defined(HAVE_VFORK) - static void - compress_savefile(const char *filename) - { -+# ifdef HAVE_FORK - if (fork()) -+# else -+ if (vfork()) -+# endif - return; - /* - * Set to lowest priority so that this doesn't disturb the capture -@@ -1534,15 +1540,20 @@ compress_savefile(const char *filename) - zflag, - filename, - strerror(errno)); -+# ifdef HAVE_FORK -+ exit(1); -+# else -+ _exit(1); -+# endif - } --#else /* WIN32 */ -+#else /* HAVE_FORK || HAVE_VFORK */ - static void - compress_savefile(const char *filename) - { - fprintf(stderr, -- "compress_savefile failed. Functionality not implemented under windows\n"); -+ "compress_savefile failed. Functionality not implemented under your system\n"); - } --#endif /* WIN32 */ -+#endif /* HAVE_FORK || HAVE_VFORK */ - - static void - dump_packet_and_trunc(u_char *user, const struct pcap_pkthdr *h, const u_char *sp) --- -1.7.3.1 diff --git a/package/tcpdump/tcpdump.mk b/package/tcpdump/tcpdump.mk index 153454319..cf23df391 100644 --- a/package/tcpdump/tcpdump.mk +++ b/package/tcpdump/tcpdump.mk @@ -6,13 +6,13 @@ # Copyright (C) 2001-2003 by Erik Andersen <andersen@codepoet.org> # Copyright (C) 2002 by Tim Riker <Tim@Rikers.org> -TCPDUMP_VERSION:=4.1.1 -TCPDUMP_SITE:=http://www.tcpdump.org/release -TCPDUMP_SOURCE:=tcpdump-$(TCPDUMP_VERSION).tar.gz -TCPDUMP_CONF_ENV:=ac_cv_linux_vers=2 -TCPDUMP_CONF_OPT:=--without-crypto \ +TCPDUMP_VERSION = 4.2.1 +TCPDUMP_SITE = http://www.tcpdump.org/release +TCPDUMP_SOURCE = tcpdump-$(TCPDUMP_VERSION).tar.gz +TCPDUMP_CONF_ENV = ac_cv_linux_vers=2 +TCPDUMP_CONF_OPT = --without-crypto \ $(if $(BR2_PACKAGE_TCPDUMP_SMB),--enable-smb,--disable-smb) -TCPDUMP_DEPENDENCIES:=zlib libpcap +TCPDUMP_DEPENDENCIES = zlib libpcap # make install installs an unneeded extra copy of the tcpdump binary define TCPDUMP_REMOVE_DUPLICATED_BINARY |