diff options
author | mi <mi@FreeBSD.org> | 2015-03-24 04:47:55 +0800 |
---|---|---|
committer | mi <mi@FreeBSD.org> | 2015-03-24 04:47:55 +0800 |
commit | 83dc8d080b90a10da3c8415562921a6c2c76e521 (patch) | |
tree | 2c1b6124cf8a957913ffc4bad160fb1197d3f566 | |
parent | f0d6cdc7bf8183e839ef39a21f11089e3468d889 (diff) | |
download | freebsd-ports-gnome-83dc8d080b90a10da3c8415562921a6c2c76e521.tar.gz freebsd-ports-gnome-83dc8d080b90a10da3c8415562921a6c2c76e521.tar.zst freebsd-ports-gnome-83dc8d080b90a10da3c8415562921a6c2c76e521.zip |
Unbreak:
. Fix the ancient bug, which prevented this from being
compiled with delightfully picky clang++ -- thus removing
the GCC-requirement added by pi@
. Remove the author's curious attempts to impose stack-size
limits on the various threads of this program -- this was,
what caused the program to crash at run-time
. Get rid of pkg-plist (which only had two files) anyway.
. Declare the LICENSE (LGPL21)
Bump PORTREVISION.
Approved by: port being condemned for deletion
-rw-r--r-- | net-mgmt/tcptrack/Makefile | 17 | ||||
-rw-r--r-- | net-mgmt/tcptrack/files/patch-const | 22 | ||||
-rw-r--r-- | net-mgmt/tcptrack/files/patch-no-stack-limits | 160 | ||||
-rw-r--r-- | net-mgmt/tcptrack/pkg-plist | 2 |
4 files changed, 190 insertions, 11 deletions
diff --git a/net-mgmt/tcptrack/Makefile b/net-mgmt/tcptrack/Makefile index c432e71e8ab6..28d12dd7b77f 100644 --- a/net-mgmt/tcptrack/Makefile +++ b/net-mgmt/tcptrack/Makefile @@ -1,20 +1,19 @@ # Created by: Tor Halvard "Squat" Furulund <squat@squat.no> # $FreeBSD$ -PORTNAME= tcptrack -PORTVERSION= 1.4.2 -PORTREVISION= 1 -CATEGORIES= net-mgmt -MASTER_SITES= http://pkgs.fedoraproject.org/repo/pkgs/tcptrack/tcptrack-1.4.2.tar.gz/dacf71a6b5310caf1203a2171b598610/ +PORTNAME= tcptrack +PORTVERSION= 1.4.2 +PORTREVISION= 2 +CATEGORIES= net-mgmt +MASTER_SITES= http://pkgs.fedoraproject.org/repo/pkgs/tcptrack/tcptrack-1.4.2.tar.gz/dacf71a6b5310caf1203a2171b598610/ MAINTAINER= squat@squat.no COMMENT= Packet sniffer which displays TCP information like top(1) -BROKEN= binary segfaults -DEPRECATED= Broken for more than 6 months -EXPIRATION_DATE= 2015-03-28 +LICENSE= LGPL21 GNU_CONFIGURE= yes -USE_GCC= yes + +PLIST_FILES= bin/tcptrack man/man1/tcptrack.1.gz .include <bsd.port.mk> diff --git a/net-mgmt/tcptrack/files/patch-const b/net-mgmt/tcptrack/files/patch-const new file mode 100644 index 000000000000..3874461681b5 --- /dev/null +++ b/net-mgmt/tcptrack/files/patch-const @@ -0,0 +1,22 @@ +Const is good... + + -mi + +--- src/Guesser.h 2010-09-27 19:02:01.000000000 -0400 ++++ src/Guesser.h 2015-03-23 11:42:51.000000000 -0400 +@@ -20,5 +20,5 @@ + { + public: +- bool operator()( const SocketPair &sp1, const SocketPair & sp2 ) ++ bool operator()( const SocketPair &sp1, const SocketPair & sp2 ) const + { + if( sp1==sp2 ) +--- src/TCContainer.h 2010-09-27 19:02:01.000000000 -0400 ++++ src/TCContainer.h 2015-03-23 11:40:43.000000000 -0400 +@@ -58,5 +58,5 @@ + { + public: +- bool operator()( const SocketPair &sp1, const SocketPair &sp2 ) ++ bool operator()( const SocketPair &sp1, const SocketPair &sp2 ) const + { + if( sp1==sp2 ) diff --git a/net-mgmt/tcptrack/files/patch-no-stack-limits b/net-mgmt/tcptrack/files/patch-no-stack-limits new file mode 100644 index 000000000000..e58660ed957d --- /dev/null +++ b/net-mgmt/tcptrack/files/patch-no-stack-limits @@ -0,0 +1,160 @@ +Remove attempts to set arbitrary limits on stack-sizes for different +threads, which cause segfaults (due, presumably, to the limits being +too low). + + -mi + +--- src/defs.h 2010-09-27 19:02:01.000000000 -0400 ++++ src/defs.h 2015-03-23 16:39:53.000000000 -0400 +@@ -30,8 +30,2 @@ + //#define FASTMODE_INTERVAL 250000000 // one quarter of a second + #define FASTMODE_INTERVAL 100000000 // one tenth of a second +- +-// stack sizes for the different threads +-#define SS_PB 2048 // PacketBuffer +-#define SS_S 4096 // Sniffer 2048 -> segfault on freebsd +-#define SS_TCC 4096 // TCContainer +-#define SS_TUI 5120 // TextUI. 4096 -> segfault on solaris +--- src/PacketBuffer.cc 2010-09-27 19:02:01.000000000 -0400 ++++ src/PacketBuffer.cc 2015-03-23 16:23:36.000000000 -0400 +@@ -53,14 +53,6 @@ + // Start up maintenence thread + // +- pthread_attr_t attr; +- if( pthread_attr_init( &attr ) != 0 ) +- throw GenericError("pthread_attr_init() failed"); +- +- // TODO: there is no man page for this call on linux. Not sure what it +- // may return. On some systems it may not be supported at all +- // (should return ENOSYS). Should be safe to ignore return val. +- pthread_attr_setstacksize( &attr, SS_PB ); + +- if( pthread_create(&maint_thread_tid,&attr,pbmaint_thread_func,this) != 0 ) ++ if (pthread_create(&maint_thread_tid, NULL, pbmaint_thread_func, this) != 0) + throw GenericError("pthread_create() returned an error"); + +--- src/Sniffer.cc 2010-09-27 19:02:22.000000000 -0400 ++++ src/Sniffer.cc 2015-03-23 16:25:10.000000000 -0400 +@@ -55,5 +66,5 @@ + } + +-void Sniffer::init(char *iface, char *fexp, char *test_file) ++void Sniffer::init(const char *iface, const char *fexp, const char *test_file) + { + assert(pcap_initted==false); +@@ -89,6 +102,4 @@ + // prepare the filter + // +- struct bpf_program filter; // the filter for the sniffer +- char *filter_app = fexp; // The filter expression + bpf_u_int32 mask; // The netmask of our sniffing device + bpf_u_int32 net; // The IP of our sniffing device +@@ -102,28 +113,23 @@ + mask = 0; + } +- if( pcap_compile(handle, &filter, filter_app, 0, net) == -1 ) +- { +- pcap_close(handle); +- throw PcapError("pcap_compile",pcap_geterr(handle)); +- } +- if( pcap_setfilter(handle, &filter) ) // apply filter to sniffer +- { +- pcap_freecode(&filter); +- pcap_close(handle); +- throw PcapError("pcap_setfilter",pcap_geterr(handle)); ++ if (fexp != NULL && fexp[0] != '\0') { ++ struct bpf_program filter; // the filter for the sniffer ++ if (pcap_compile(handle, &filter, fexp, 0, net) == -1) ++ { ++ pcap_close(handle); ++ throw PcapError("pcap_compile", pcap_geterr(handle)); ++ } ++ if (pcap_setfilter(handle, &filter)) // apply filter to sniffer ++ { ++ pcap_freecode(&filter); ++ pcap_close(handle); ++ throw PcapError("pcap_setfilter", pcap_geterr(handle)); ++ } ++ pcap_freecode(&filter); // filter code not needed after setfilter + } +- pcap_freecode(&filter); // filter code not needed after setfilter +- +- pcap_initted=true; +- + +- pthread_attr_t attr; +- +- if( pthread_attr_init( &attr ) != 0 ) +- throw GenericError("pthread_attr_init() failed"); +- +- pthread_attr_setstacksize( &attr, SS_S ); ++ pcap_initted=true; + +- if( pthread_create(&sniffer_tid,&attr,sniffer_thread_func,this) != 0 ) ++ if (pthread_create(&sniffer_tid, NULL, sniffer_thread_func, this) != 0) + throw GenericError("pthread_create() failed."); + +@@ -163,9 +170,11 @@ + void Sniffer::processPacket( const pcap_pkthdr *header, const u_char *packet ) + { +- assert( pthread_mutex_lock(&pb_mutex)==0 ); ++ ++ if (pthread_mutex_lock(&pb_mutex) != 0) ++ return; + + if( pb==NULL ) + { +- assert( pthread_mutex_unlock(&pb_mutex) == 0 ); ++ pthread_mutex_unlock(&pb_mutex); + return; + } +@@ -193,5 +202,5 @@ + pb->pushPacket(n); + +- assert( pthread_mutex_unlock(&pb_mutex) == 0 ); ++ pthread_mutex_unlock(&pb_mutex); + } + +--- src/Sniffer.h 2010-09-27 19:02:22.000000000 -0400 ++++ src/Sniffer.h 2015-03-23 15:07:57.000000000 -0400 +@@ -43,5 +43,5 @@ + // init performs some constructor-like activity. It is separate + // so that exceptions don't have to be thrown in the constructor. +- void init(char *iface, char *fexp, char *test_file); ++ void init(const char *iface, const char *fexp, const char *test_file); + + // set the place where sniffed packets are sent for further +--- src/TCContainer.cc 2010-09-27 19:02:01.000000000 -0400 ++++ src/TCContainer.cc 2015-03-23 16:23:05.000000000 -0400 +@@ -47,15 +47,8 @@ + state=TSTATE_IDLE; + +- pthread_attr_t attr; +- + pthread_mutex_init( &conlist_lock, NULL ); + pthread_mutex_init( &state_mutex, NULL ); + +- if( pthread_attr_init( &attr ) != 0 ) +- throw GenericError("pthread_attr_init() failed"); +- +- pthread_attr_setstacksize( &attr, SS_TCC ); +- +- if( pthread_create(&maint_thread_tid,&attr,maint_thread_func,this) != 0 ) ++ if( pthread_create(&maint_thread_tid, NULL, maint_thread_func, this) != 0 ) + throw GenericError("pthread_create() failed."); + +--- src/TextUI.cc 2011-08-03 13:34:45.000000000 -0400 ++++ src/TextUI.cc 2015-03-23 16:24:20.000000000 -0400 +@@ -80,11 +80,5 @@ + run_displayer = true; + +- pthread_attr_t attr; +- if( pthread_attr_init( &attr ) != 0 ) +- throw GenericError("pthread_attr_init() failed"); +- +- pthread_attr_setstacksize( &attr, SS_TUI ); +- +- if( pthread_create(&displayer_tid,&attr,displayer_thread_func,this) != 0 ) ++ if (pthread_create(&displayer_tid, NULL, displayer_thread_func, this) != 0) + throw GenericError("pthread_create() returned an error."); + diff --git a/net-mgmt/tcptrack/pkg-plist b/net-mgmt/tcptrack/pkg-plist deleted file mode 100644 index e7e7a35c0841..000000000000 --- a/net-mgmt/tcptrack/pkg-plist +++ /dev/null @@ -1,2 +0,0 @@ -bin/tcptrack -man/man1/tcptrack.1.gz |