mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-17 03:25:46 +00:00
fbb19c4f2d
. 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
161 lines
5.3 KiB
Plaintext
161 lines
5.3 KiB
Plaintext
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.");
|
|
|