svn commit: r382040 - in head/net-mgmt/tcptrack: . files
Mikhail Teterin
mi at FreeBSD.org
Mon Mar 23 20:47:57 UTC 2015
Author: mi
Date: Mon Mar 23 20:47:55 2015
New Revision: 382040
URL: https://svnweb.freebsd.org/changeset/ports/382040
QAT: https://qat.redports.org/buildarchive/r382040/
Log:
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
Added:
head/net-mgmt/tcptrack/files/patch-const (contents, props changed)
head/net-mgmt/tcptrack/files/patch-no-stack-limits (contents, props changed)
Deleted:
head/net-mgmt/tcptrack/pkg-plist
Modified:
head/net-mgmt/tcptrack/Makefile
Modified: head/net-mgmt/tcptrack/Makefile
==============================================================================
--- head/net-mgmt/tcptrack/Makefile Mon Mar 23 20:46:40 2015 (r382039)
+++ head/net-mgmt/tcptrack/Makefile Mon Mar 23 20:47:55 2015 (r382040)
@@ -1,20 +1,19 @@
# Created by: Tor Halvard "Squat" Furulund <squat at 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 at 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>
Added: head/net-mgmt/tcptrack/files/patch-const
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-mgmt/tcptrack/files/patch-const Mon Mar 23 20:47:55 2015 (r382040)
@@ -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 )
Added: head/net-mgmt/tcptrack/files/patch-no-stack-limits
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/net-mgmt/tcptrack/files/patch-no-stack-limits Mon Mar 23 20:47:55 2015 (r382040)
@@ -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.");
+
More information about the svn-ports-all
mailing list