aboutsummaryrefslogtreecommitdiff
path: root/net-mgmt/tcptrack
diff options
context:
space:
mode:
authorMikhail Teterin <mi@FreeBSD.org>2015-03-23 20:47:55 +0000
committerMikhail Teterin <mi@FreeBSD.org>2015-03-23 20:47:55 +0000
commitfbb19c4f2d8969f885a9bd0f8936a223c3253f72 (patch)
tree2c1b6124cf8a957913ffc4bad160fb1197d3f566 /net-mgmt/tcptrack
parente550c2e5d2be20d72904cc44717acc221e7902b8 (diff)
downloadports-fbb19c4f2d8969f885a9bd0f8936a223c3253f72.tar.gz
ports-fbb19c4f2d8969f885a9bd0f8936a223c3253f72.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
Notes
Notes: svn path=/head/; revision=382040
Diffstat (limited to 'net-mgmt/tcptrack')
-rw-r--r--net-mgmt/tcptrack/Makefile17
-rw-r--r--net-mgmt/tcptrack/files/patch-const22
-rw-r--r--net-mgmt/tcptrack/files/patch-no-stack-limits160
-rw-r--r--net-mgmt/tcptrack/pkg-plist2
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