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 | 
