From e2368b92a101437f7ed289d5ae62f7e7e2466344 Mon Sep 17 00:00:00 2001 From: mickeyl Date: Sun, 28 Mar 2004 16:52:43 +0000 Subject: OPacketCapturer API addition: setAutoDelete() and autoDelete() --- (limited to 'libopie2/opienet/opcap.cpp') diff --git a/libopie2/opienet/opcap.cpp b/libopie2/opienet/opcap.cpp index 4081d4f..c5df041 100644 --- a/libopie2/opienet/opcap.cpp +++ b/libopie2/opienet/opcap.cpp @@ -57,7 +57,7 @@ namespace Net { OPacket::OPacket( int datalink, packetheaderstruct header, const unsigned char* data, QObject* parent ) :QObject( parent, "Generic" ), _hdr( header ), _data( data ) { - //qDebug( "OPacket::OPacket(): (Len %d, CapLen %d)" /*, ctime((const time_t*) header.ts.tv_sec)*/, header.len, header.caplen ); + qDebug( "OPacket::OPacket(): (Len %d, CapLen %d)" /*, ctime((const time_t*) header.ts.tv_sec)*/, header.len, header.caplen ); _end = (unsigned char*) data + header.len; //qDebug( "OPacket::data @ %0x, end @ %0x", data, _end ); @@ -87,6 +87,7 @@ OPacket::OPacket( int datalink, packetheaderstruct header, const unsigned char* OPacket::~OPacket() { + qDebug( "OPacket::~OPacket( %s )", name() ); } @@ -1063,7 +1064,7 @@ QString OWaveLanControlPacket::controlType() const *======================================================================================*/ OPacketCapturer::OPacketCapturer( QObject* parent, const char* name ) - :QObject( parent, name ), _name( QString::null ), _open( false ), _pch( 0 ), _pcd( 0 ), _sn( 0 ) + :QObject( parent, name ), _name( QString::null ), _open( false ), _pch( 0 ), _pcd( 0 ), _sn( 0 ), _autodelete( true ) { } @@ -1078,6 +1079,18 @@ OPacketCapturer::~OPacketCapturer() } +void OPacketCapturer::setAutoDelete( bool b ) +{ + _autodelete = b; +} + + +bool OPacketCapturer::autoDelete() const +{ + return _autodelete; +} + + void OPacketCapturer::setBlocking( bool b ) { if ( pcap_setnonblock( _pch, 1-b, _errbuf ) != -1 ) @@ -1321,8 +1334,8 @@ void OPacketCapturer::readyToReceive() odebug << "OPacketCapturer::readyToReceive(): about to emit 'receivePacket(p)'" << oendl; OPacket* p = next(); emit receivedPacket( p ); - // emit is synchronous - packet has been dealt with, now it's safe to delete - delete p; + // emit is synchronous - packet has been dealt with, now it's safe to delete (if enabled) + if ( _autodelete ) delete p; } -- cgit v0.9.0.2