-rw-r--r-- | libopie2/opienet/opcap.cpp | 163 |
1 files changed, 80 insertions, 83 deletions
diff --git a/libopie2/opienet/opcap.cpp b/libopie2/opienet/opcap.cpp index 635224c..e9b3b2c 100644 --- a/libopie2/opienet/opcap.cpp +++ b/libopie2/opienet/opcap.cpp | |||
@@ -30,6 +30,7 @@ | |||
30 | 30 | ||
31 | /* OPIE */ | 31 | /* OPIE */ |
32 | #include <opie2/opcap.h> | 32 | #include <opie2/opcap.h> |
33 | #include <opie2/odebug.h> | ||
33 | 34 | ||
34 | /* QT */ | 35 | /* QT */ |
35 | #include <qapplication.h> // don't use oapplication here (will decrease reusability in other projects) | 36 | #include <qapplication.h> // don't use oapplication here (will decrease reusability in other projects) |
@@ -59,22 +60,22 @@ OPacket::OPacket( int datalink, packetheaderstruct header, const unsigned char* | |||
59 | switch ( datalink ) | 60 | switch ( datalink ) |
60 | { | 61 | { |
61 | case DLT_EN10MB: | 62 | case DLT_EN10MB: |
62 | qDebug( "OPacket::OPacket(): Received Packet. Datalink = ETHERNET" ); | 63 | odebug << "OPacket::OPacket(): Received Packet. Datalink = ETHERNET" << oendl; |
63 | new OEthernetPacket( _end, (const struct ether_header*) data, this ); | 64 | new OEthernetPacket( _end, (const struct ether_header*) data, this ); |
64 | break; | 65 | break; |
65 | 66 | ||
66 | case DLT_IEEE802_11: | 67 | case DLT_IEEE802_11: |
67 | qDebug( "OPacket::OPacket(): Received Packet. Datalink = IEEE802.11" ); | 68 | odebug << "OPacket::OPacket(): Received Packet. Datalink = IEEE802.11" << oendl; |
68 | new OWaveLanPacket( _end, (const struct ieee_802_11_header*) data, this ); | 69 | new OWaveLanPacket( _end, (const struct ieee_802_11_header*) data, this ); |
69 | break; | 70 | break; |
70 | 71 | ||
71 | case DLT_PRISM_HEADER: | 72 | case DLT_PRISM_HEADER: |
72 | qDebug( "OPacket::OPacket(): Received Packet. Datalink = PRISM_HEADER" ); | 73 | odebug << "OPacket::OPacket(): Received Packet. Datalink = PRISM_HEADER" << oendl; |
73 | new OPrismHeaderPacket( _end, (const struct prism_hdr*) (unsigned char*) data, this ); | 74 | new OPrismHeaderPacket( _end, (const struct prism_hdr*) (unsigned char*) data, this ); |
74 | break; | 75 | break; |
75 | 76 | ||
76 | default: | 77 | default: |
77 | qWarning( "OPacket::OPacket(): Received Packet over unsupported datalink (type %d)!", datalink ); | 78 | owarn << "OPacket::OPacket(): Received Packet over unsupported datalink, type " << datalink << "!" << oendl; |
78 | } | 79 | } |
79 | } | 80 | } |
80 | 81 | ||
@@ -112,7 +113,7 @@ void OPacket::updateStats( QMap<QString,int>& stats, QObjectList* l ) | |||
112 | void OPacket::dumpStructure( QObjectList* l ) | 113 | void OPacket::dumpStructure( QObjectList* l ) |
113 | { | 114 | { |
114 | QString packetString( "[ |" + _dumpStructure( l ) + " ]" ); | 115 | QString packetString( "[ |" + _dumpStructure( l ) + " ]" ); |
115 | qDebug( "OPacket::dumpStructure: %s", (const char*) packetString ); | 116 | odebug << "OPacket::dumpStructure: " << packetString << oendl; |
116 | } | 117 | } |
117 | 118 | ||
118 | 119 | ||
@@ -186,20 +187,20 @@ OEthernetPacket::OEthernetPacket( const unsigned char* end, const struct ether_h | |||
186 | :QObject( parent, "Ethernet" ), _ether( data ) | 187 | :QObject( parent, "Ethernet" ), _ether( data ) |
187 | { | 188 | { |
188 | 189 | ||
189 | qDebug( "Source = %s", (const char*) sourceAddress().toString() ); | 190 | odebug << "Source = " << sourceAddress().toString(); |
190 | qDebug( "Destination = %s", (const char*) destinationAddress().toString() ); | 191 | odebug << "Destination = " << destinationAddress().toString(); |
191 | 192 | ||
192 | if ( sourceAddress() == OMacAddress::broadcast ) | 193 | if ( sourceAddress() == OMacAddress::broadcast ) |
193 | qDebug( "Source is broadcast address" ); | 194 | odebug << "Source is broadcast address" << oendl; |
194 | if ( destinationAddress() == OMacAddress::broadcast ) | 195 | if ( destinationAddress() == OMacAddress::broadcast ) |
195 | qDebug( "Destination is broadcast address" ); | 196 | odebug << "Destination is broadcast address" << oendl; |
196 | 197 | ||
197 | switch ( type() ) | 198 | switch ( type() ) |
198 | { | 199 | { |
199 | case ETHERTYPE_IP: new OIPPacket( end, (const struct iphdr*) (data+1), this ); break; | 200 | case ETHERTYPE_IP: new OIPPacket( end, (const struct iphdr*) (data+1), this ); break; |
200 | case ETHERTYPE_ARP: new OARPPacket( end, (const struct myarphdr*) (data+1), this ); break; | 201 | case ETHERTYPE_ARP: new OARPPacket( end, (const struct myarphdr*) (data+1), this ); break; |
201 | case ETHERTYPE_REVARP: { qDebug( "OPacket::OPacket(): Received Ethernet Packet : Type = RARP" ); break; } | 202 | case ETHERTYPE_REVARP: { odebug << "OPacket::OPacket(): Received Ethernet Packet : Type = RARP" << oendl; break; } |
202 | default: qDebug( "OPacket::OPacket(): Received Ethernet Packet : Type = UNKNOWN" ); | 203 | default: odebug << "OPacket::OPacket(): Received Ethernet Packet : Type = UNKNOWN" << oendl; |
203 | } | 204 | } |
204 | 205 | ||
205 | } | 206 | } |
@@ -235,19 +236,16 @@ int OEthernetPacket::type() const | |||
235 | OIPPacket::OIPPacket( const unsigned char* end, const struct iphdr* data, QObject* parent ) | 236 | OIPPacket::OIPPacket( const unsigned char* end, const struct iphdr* data, QObject* parent ) |
236 | :QObject( parent, "IP" ), _iphdr( data ) | 237 | :QObject( parent, "IP" ), _iphdr( data ) |
237 | { | 238 | { |
238 | qDebug( "OIPPacket::OIPPacket(): decoding IP header..." ); | 239 | odebug << "OIPPacket::OIPPacket(): decoding IP header..." << oendl; |
239 | 240 | ||
240 | //qDebug( "FromAddress: %s", (const char*) inet_ntoa( *src ) ); | 241 | odebug << "FromAddress = " << fromIPAddress().toString(); |
241 | //qDebug( " ToAddress: %s", (const char*) inet_ntoa( *dst ) ); | 242 | odebug << " toAddress = " << toIPAddress().toString(); |
242 | |||
243 | qDebug( "FromAddress: %s", (const char*) fromIPAddress().toString() ); | ||
244 | qDebug( " toAddress: %s", (const char*) toIPAddress().toString() ); | ||
245 | 243 | ||
246 | switch ( protocol() ) | 244 | switch ( protocol() ) |
247 | { | 245 | { |
248 | case IPPROTO_UDP: new OUDPPacket( end, (const struct udphdr*) (data+1), this ); break; | 246 | case IPPROTO_UDP: new OUDPPacket( end, (const struct udphdr*) (data+1), this ); break; |
249 | case IPPROTO_TCP: new OTCPPacket( end, (const struct tcphdr*) (data+1), this ); break; | 247 | case IPPROTO_TCP: new OTCPPacket( end, (const struct tcphdr*) (data+1), this ); break; |
250 | default: qDebug( "OIPPacket::OIPPacket(): unknown IP protocol type = %d", protocol() ); | 248 | default: odebug << "OIPPacket::OIPPacket(): unknown IP protocol, type = " << protocol() << oendl; |
251 | } | 249 | } |
252 | 250 | ||
253 | } | 251 | } |
@@ -318,10 +316,10 @@ int OIPPacket::checksum() const | |||
318 | OARPPacket::OARPPacket( const unsigned char* end, const struct myarphdr* data, QObject* parent ) | 316 | OARPPacket::OARPPacket( const unsigned char* end, const struct myarphdr* data, QObject* parent ) |
319 | :QObject( parent, "ARP" ), _arphdr( data ) | 317 | :QObject( parent, "ARP" ), _arphdr( data ) |
320 | { | 318 | { |
321 | qDebug( "OARPPacket::OARPPacket(): decoding ARP header..." ); | 319 | odebug << "OARPPacket::OARPPacket(): decoding ARP header..." << oendl; |
322 | qDebug( "ARP type seems to be %02d - '%s'", EXTRACT_16BITS( &_arphdr->ar_op ), (const char*) type() ); | 320 | odebug << "ARP type seems to be " << EXTRACT_16BITS( &_arphdr->ar_op ) << " = " << type() << oendl; |
323 | qDebug( "Sender: MAC %s = IP %s", (const char*) senderMacAddress().toString(), (const char*) senderIPV4Address().toString() ); | 321 | odebug << "Sender: MAC " << senderMacAddress().toString() << " = IP " << senderIPV4Address().toString() << oendl; |
324 | qDebug( "Target: MAC %s = IP %s", (const char*) targetMacAddress().toString(), (const char*) targetIPV4Address().toString() ); | 322 | odebug << "Target: MAC " << targetMacAddress().toString() << " = IP " << targetIPV4Address().toString() << oendl; |
325 | } | 323 | } |
326 | 324 | ||
327 | 325 | ||
@@ -379,16 +377,16 @@ OUDPPacket::OUDPPacket( const unsigned char* end, const struct udphdr* data, QOb | |||
379 | :QObject( parent, "UDP" ), _udphdr( data ) | 377 | :QObject( parent, "UDP" ), _udphdr( data ) |
380 | 378 | ||
381 | { | 379 | { |
382 | qDebug( "OUDPPacket::OUDPPacket(): decoding UDP header..." ); | 380 | odebug << "OUDPPacket::OUDPPacket(): decoding UDP header..." << oendl; |
383 | qDebug( "fromPort = %d", fromPort() ); | 381 | odebug << "fromPort = " << fromPort() << oendl; |
384 | qDebug( " toPort = %d", toPort() ); | 382 | odebug << " toPort = " << toPort() << oendl; |
385 | 383 | ||
386 | // TODO: Make this a case or a hash if we know more udp protocols | 384 | // TODO: Make this a case or a hash if we know more udp protocols |
387 | 385 | ||
388 | if ( fromPort() == UDP_PORT_BOOTPS || fromPort() == UDP_PORT_BOOTPC || | 386 | if ( fromPort() == UDP_PORT_BOOTPS || fromPort() == UDP_PORT_BOOTPC || |
389 | toPort() == UDP_PORT_BOOTPS || toPort() == UDP_PORT_BOOTPC ) | 387 | toPort() == UDP_PORT_BOOTPS || toPort() == UDP_PORT_BOOTPC ) |
390 | { | 388 | { |
391 | qDebug( "seems to be part of a DHCP conversation => creating DHCP packet." ); | 389 | odebug << "seems to be part of a DHCP conversation => creating DHCP packet." << oendl; |
392 | new ODHCPPacket( end, (const struct dhcp_packet*) (data+1), this ); | 390 | new ODHCPPacket( end, (const struct dhcp_packet*) (data+1), this ); |
393 | } | 391 | } |
394 | } | 392 | } |
@@ -432,13 +430,13 @@ ODHCPPacket::ODHCPPacket( const unsigned char* end, const struct dhcp_packet* da | |||
432 | :QObject( parent, "DHCP" ), _dhcphdr( data ) | 430 | :QObject( parent, "DHCP" ), _dhcphdr( data ) |
433 | 431 | ||
434 | { | 432 | { |
435 | qDebug( "ODHCPPacket::ODHCPPacket(): decoding DHCP information..." ); | 433 | odebug << "ODHCPPacket::ODHCPPacket(): decoding DHCP information..." << oendl; |
436 | qDebug( "DHCP opcode seems to be %02d - '%s'", _dhcphdr->op, isRequest() ? "REQUEST" : "REPLY" ); | 434 | odebug << "DHCP opcode seems to be " << _dhcphdr->op << ": " << ( isRequest() ? "REQUEST" : "REPLY" ) << oendl; |
437 | qDebug( "clientAddress: %s", (const char*) clientAddress().toString() ); | 435 | odebug << "clientAddress = " << clientAddress().toString() << oendl; |
438 | qDebug( " yourAddress: %s", (const char*) yourAddress().toString() ); | 436 | odebug << " yourAddress = " << yourAddress().toString() << oendl; |
439 | qDebug( "serverAddress: %s", (const char*) serverAddress().toString() ); | 437 | odebug << "serverAddress = " << serverAddress().toString() << oendl; |
440 | qDebug( " relayAddress: %s", (const char*) relayAddress().toString() ); | 438 | odebug << " relayAddress = " << relayAddress().toString() << oendl; |
441 | qDebug( "parsing DHCP options..." ); | 439 | odebug << "parsing DHCP options..." << oendl; |
442 | 440 | ||
443 | _type = 0; | 441 | _type = 0; |
444 | 442 | ||
@@ -449,7 +447,7 @@ ODHCPPacket::ODHCPPacket( const unsigned char* end, const struct dhcp_packet* da | |||
449 | while ( ( tag = *option++ ) != -1 /* end of option field */ ) | 447 | while ( ( tag = *option++ ) != -1 /* end of option field */ ) |
450 | { | 448 | { |
451 | len = *option++; | 449 | len = *option++; |
452 | qDebug( "recognized DHCP option #%d, length %d", tag, len ); | 450 | odebug << "recognized DHCP option #" << tag << ", length " << len << oendl; |
453 | 451 | ||
454 | if ( tag == DHO_DHCP_MESSAGE_TYPE ) | 452 | if ( tag == DHO_DHCP_MESSAGE_TYPE ) |
455 | _type = *option; | 453 | _type = *option; |
@@ -457,12 +455,12 @@ ODHCPPacket::ODHCPPacket( const unsigned char* end, const struct dhcp_packet* da | |||
457 | option += len; | 455 | option += len; |
458 | if ( option >= end ) | 456 | if ( option >= end ) |
459 | { | 457 | { |
460 | qWarning( "DHCP parsing ERROR: sanity check says the packet is at its end!" ); | 458 | owarn << "DHCP parsing ERROR: sanity check says the packet is at its end!" << oendl; |
461 | break; | 459 | break; |
462 | } | 460 | } |
463 | } | 461 | } |
464 | 462 | ||
465 | qDebug( "DHCP type seems to be '%s'", (const char*) type() ); | 463 | odebug << "DHCP type seems to be << " << type() << oendl; |
466 | } | 464 | } |
467 | 465 | ||
468 | 466 | ||
@@ -539,7 +537,7 @@ OTCPPacket::OTCPPacket( const unsigned char* end, const struct tcphdr* data, QOb | |||
539 | :QObject( parent, "TCP" ), _tcphdr( data ) | 537 | :QObject( parent, "TCP" ), _tcphdr( data ) |
540 | 538 | ||
541 | { | 539 | { |
542 | qDebug( "OTCPPacket::OTCPPacket(): decoding TCP header..." ); | 540 | odebug << "OTCPPacket::OTCPPacket(): decoding TCP header..." << oendl; |
543 | } | 541 | } |
544 | 542 | ||
545 | 543 | ||
@@ -592,9 +590,9 @@ OPrismHeaderPacket::OPrismHeaderPacket( const unsigned char* end, const struct p | |||
592 | :QObject( parent, "Prism" ), _header( data ) | 590 | :QObject( parent, "Prism" ), _header( data ) |
593 | 591 | ||
594 | { | 592 | { |
595 | qDebug( "OPrismHeaderPacket::OPrismHeaderPacket(): decoding PRISM header..." ); | 593 | odebug << "OPrismHeaderPacket::OPrismHeaderPacket(): decoding PRISM header..." << oendl; |
596 | 594 | ||
597 | qDebug( "Signal Strength = %d", data->signal.data ); | 595 | odebug << "Signal Strength = " << data->signal.data << oendl; |
598 | 596 | ||
599 | new OWaveLanPacket( end, (const struct ieee_802_11_header*) (data+1), this ); | 597 | new OWaveLanPacket( end, (const struct ieee_802_11_header*) (data+1), this ); |
600 | } | 598 | } |
@@ -618,23 +616,23 @@ OWaveLanPacket::OWaveLanPacket( const unsigned char* end, const struct ieee_802_ | |||
618 | :QObject( parent, "802.11" ), _wlanhdr( data ) | 616 | :QObject( parent, "802.11" ), _wlanhdr( data ) |
619 | 617 | ||
620 | { | 618 | { |
621 | qDebug( "OWaveLanPacket::OWaveLanPacket(): decoding IEEE 802.11 header..." ); | 619 | odebug << "OWaveLanPacket::OWaveLanPacket(): decoding IEEE 802.11 header..." << oendl; |
622 | qDebug( "type: %0X", type() ); | 620 | odebug << "type = " << type() << oendl; |
623 | qDebug( "subType: %0X", subType() ); | 621 | odebug << "subType = " << subType() << oendl; |
624 | qDebug( "duration: %d", duration() ); | 622 | odebug << "duration = " << duration() << oendl; |
625 | qDebug( "powermanagement: %d", usesPowerManagement() ); | 623 | odebug << "powermanagement = " << usesPowerManagement() << oendl; |
626 | qDebug( "payload is encrypted: %s", usesWep() ? "yes" : "no" ); | 624 | odebug << "payload is encrypted = " << ( usesWep() ? "yes" : "no" ) << oendl; |
627 | qDebug( "MAC1: %s", (const char*) macAddress1().toString() ); | 625 | odebug << "MAC1 = " << macAddress1().toString() << oendl; |
628 | qDebug( "MAC2: %s", (const char*) macAddress2().toString() ); | 626 | odebug << "MAC2 = " << macAddress2().toString() << oendl; |
629 | qDebug( "MAC3: %s", (const char*) macAddress3().toString() ); | 627 | odebug << "MAC3 = " << macAddress3().toString() << oendl; |
630 | qDebug( "MAC4: %s", (const char*) macAddress4().toString() ); | 628 | odebug << "MAC4 = " << macAddress4().toString() << oendl; |
631 | 629 | ||
632 | switch ( type() ) | 630 | switch ( type() ) |
633 | { | 631 | { |
634 | case T_MGMT: new OWaveLanManagementPacket( end, (const struct ieee_802_11_mgmt_header*) data, this ); break; | 632 | case T_MGMT: new OWaveLanManagementPacket( end, (const struct ieee_802_11_mgmt_header*) data, this ); break; |
635 | case T_DATA: new OWaveLanDataPacket( end, (const struct ieee_802_11_data_header*) data, this ); break; | 633 | case T_DATA: new OWaveLanDataPacket( end, (const struct ieee_802_11_data_header*) data, this ); break; |
636 | case T_CTRL: new OWaveLanControlPacket( end, (const struct ieee_802_11_control_header*) data, this ); break; | 634 | case T_CTRL: new OWaveLanControlPacket( end, (const struct ieee_802_11_control_header*) data, this ); break; |
637 | default: qDebug( "OWaveLanPacket::OWaveLanPacket(): Warning: Unknown major type '%d'!", type() ); | 635 | default: odebug << "OWaveLanPacket::OWaveLanPacket(): Warning: Unknown major type = " << type() << oendl; |
638 | } | 636 | } |
639 | } | 637 | } |
640 | 638 | ||
@@ -723,8 +721,8 @@ OWaveLanManagementPacket::OWaveLanManagementPacket( const unsigned char* end, co | |||
723 | :QObject( parent, "802.11 Management" ), _header( data ), | 721 | :QObject( parent, "802.11 Management" ), _header( data ), |
724 | _body( (const struct ieee_802_11_mgmt_body*) (data+1) ) | 722 | _body( (const struct ieee_802_11_mgmt_body*) (data+1) ) |
725 | { | 723 | { |
726 | qDebug( "OWaveLanManagementPacket::OWaveLanManagementPacket(): decoding frame..." ); | 724 | odebug << "OWaveLanManagementPacket::OWaveLanManagementPacket(): decoding frame..." << oendl; |
727 | qDebug( "Detected subtype is '%s'", (const char*) managementType() ); | 725 | odebug << "Detected subtype is " << managementType() << oendl; |
728 | 726 | ||
729 | // grab tagged values | 727 | // grab tagged values |
730 | const unsigned char* ptr = (const unsigned char*) (_body+1); | 728 | const unsigned char* ptr = (const unsigned char*) (_body+1); |
@@ -823,7 +821,7 @@ bool OWaveLanManagementPacket::canPrivacy() const | |||
823 | OWaveLanManagementSSID::OWaveLanManagementSSID( const unsigned char* end, const struct ssid_t* data, QObject* parent ) | 821 | OWaveLanManagementSSID::OWaveLanManagementSSID( const unsigned char* end, const struct ssid_t* data, QObject* parent ) |
824 | :QObject( parent, "802.11 SSID" ), _data( data ) | 822 | :QObject( parent, "802.11 SSID" ), _data( data ) |
825 | { | 823 | { |
826 | qDebug( "OWaveLanManagementSSID()" ); | 824 | odebug << "OWaveLanManagementSSID()" << oendl; |
827 | } | 825 | } |
828 | 826 | ||
829 | 827 | ||
@@ -850,7 +848,7 @@ QString OWaveLanManagementSSID::ID() const | |||
850 | OWaveLanManagementRates::OWaveLanManagementRates( const unsigned char* end, const struct rates_t* data, QObject* parent ) | 848 | OWaveLanManagementRates::OWaveLanManagementRates( const unsigned char* end, const struct rates_t* data, QObject* parent ) |
851 | :QObject( parent, "802.11 Rates" ), _data( data ) | 849 | :QObject( parent, "802.11 Rates" ), _data( data ) |
852 | { | 850 | { |
853 | qDebug( "OWaveLanManagementRates()" ); | 851 | odebug << "OWaveLanManagementRates()" << oendl; |
854 | } | 852 | } |
855 | 853 | ||
856 | 854 | ||
@@ -865,7 +863,7 @@ OWaveLanManagementRates::~OWaveLanManagementRates() | |||
865 | OWaveLanManagementCF::OWaveLanManagementCF( const unsigned char* end, const struct cf_t* data, QObject* parent ) | 863 | OWaveLanManagementCF::OWaveLanManagementCF( const unsigned char* end, const struct cf_t* data, QObject* parent ) |
866 | :QObject( parent, "802.11 CF" ), _data( data ) | 864 | :QObject( parent, "802.11 CF" ), _data( data ) |
867 | { | 865 | { |
868 | qDebug( "OWaveLanManagementCF()" ); | 866 | odebug << "OWaveLanManagementCF()" << oendl; |
869 | } | 867 | } |
870 | 868 | ||
871 | 869 | ||
@@ -880,7 +878,7 @@ OWaveLanManagementCF::~OWaveLanManagementCF() | |||
880 | OWaveLanManagementFH::OWaveLanManagementFH( const unsigned char* end, const struct fh_t* data, QObject* parent ) | 878 | OWaveLanManagementFH::OWaveLanManagementFH( const unsigned char* end, const struct fh_t* data, QObject* parent ) |
881 | :QObject( parent, "802.11 FH" ), _data( data ) | 879 | :QObject( parent, "802.11 FH" ), _data( data ) |
882 | { | 880 | { |
883 | qDebug( "OWaveLanManagementFH()" ); | 881 | odebug << "OWaveLanManagementFH()" << oendl; |
884 | } | 882 | } |
885 | 883 | ||
886 | 884 | ||
@@ -895,7 +893,7 @@ OWaveLanManagementFH::~OWaveLanManagementFH() | |||
895 | OWaveLanManagementDS::OWaveLanManagementDS( const unsigned char* end, const struct ds_t* data, QObject* parent ) | 893 | OWaveLanManagementDS::OWaveLanManagementDS( const unsigned char* end, const struct ds_t* data, QObject* parent ) |
896 | :QObject( parent, "802.11 DS" ), _data( data ) | 894 | :QObject( parent, "802.11 DS" ), _data( data ) |
897 | { | 895 | { |
898 | qDebug( "OWaveLanManagementDS()" ); | 896 | odebug << "OWaveLanManagementDS()" << oendl; |
899 | } | 897 | } |
900 | 898 | ||
901 | 899 | ||
@@ -916,7 +914,7 @@ int OWaveLanManagementDS::channel() const | |||
916 | OWaveLanManagementTim::OWaveLanManagementTim( const unsigned char* end, const struct tim_t* data, QObject* parent ) | 914 | OWaveLanManagementTim::OWaveLanManagementTim( const unsigned char* end, const struct tim_t* data, QObject* parent ) |
917 | :QObject( parent, "802.11 Tim" ), _data( data ) | 915 | :QObject( parent, "802.11 Tim" ), _data( data ) |
918 | { | 916 | { |
919 | qDebug( "OWaveLanManagementTim()" ); | 917 | odebug << "OWaveLanManagementTim()" << oendl; |
920 | } | 918 | } |
921 | 919 | ||
922 | 920 | ||
@@ -931,7 +929,7 @@ OWaveLanManagementTim::~OWaveLanManagementTim() | |||
931 | OWaveLanManagementIBSS::OWaveLanManagementIBSS( const unsigned char* end, const struct ibss_t* data, QObject* parent ) | 929 | OWaveLanManagementIBSS::OWaveLanManagementIBSS( const unsigned char* end, const struct ibss_t* data, QObject* parent ) |
932 | :QObject( parent, "802.11 IBSS" ), _data( data ) | 930 | :QObject( parent, "802.11 IBSS" ), _data( data ) |
933 | { | 931 | { |
934 | qDebug( "OWaveLanManagementIBSS()" ); | 932 | odebug << "OWaveLanManagementIBSS()" << oendl; |
935 | } | 933 | } |
936 | 934 | ||
937 | 935 | ||
@@ -946,7 +944,7 @@ OWaveLanManagementIBSS::~OWaveLanManagementIBSS() | |||
946 | OWaveLanManagementChallenge::OWaveLanManagementChallenge( const unsigned char* end, const struct challenge_t* data, QObject* parent ) | 944 | OWaveLanManagementChallenge::OWaveLanManagementChallenge( const unsigned char* end, const struct challenge_t* data, QObject* parent ) |
947 | :QObject( parent, "802.11 Challenge" ), _data( data ) | 945 | :QObject( parent, "802.11 Challenge" ), _data( data ) |
948 | { | 946 | { |
949 | qDebug( "OWaveLanManagementChallenge()" ); | 947 | odebug << "OWaveLanManagementChallenge()" << oendl; |
950 | } | 948 | } |
951 | 949 | ||
952 | 950 | ||
@@ -961,7 +959,7 @@ OWaveLanManagementChallenge::~OWaveLanManagementChallenge() | |||
961 | OWaveLanDataPacket::OWaveLanDataPacket( const unsigned char* end, const struct ieee_802_11_data_header* data, OWaveLanPacket* parent ) | 959 | OWaveLanDataPacket::OWaveLanDataPacket( const unsigned char* end, const struct ieee_802_11_data_header* data, OWaveLanPacket* parent ) |
962 | :QObject( parent, "802.11 Data" ), _header( data ) | 960 | :QObject( parent, "802.11 Data" ), _header( data ) |
963 | { | 961 | { |
964 | qDebug( "OWaveLanDataPacket::OWaveLanDataPacket(): decoding frame..." ); | 962 | odebug << "OWaveLanDataPacket::OWaveLanDataPacket(): decoding frame..." << oendl; |
965 | 963 | ||
966 | const unsigned char* payload = (const unsigned char*) data + sizeof( struct ieee_802_11_data_header ); | 964 | const unsigned char* payload = (const unsigned char*) data + sizeof( struct ieee_802_11_data_header ); |
967 | 965 | ||
@@ -984,19 +982,18 @@ OWaveLanDataPacket::~OWaveLanDataPacket() | |||
984 | OLLCPacket::OLLCPacket( const unsigned char* end, const struct ieee_802_11_802_2_header* data, QObject* parent ) | 982 | OLLCPacket::OLLCPacket( const unsigned char* end, const struct ieee_802_11_802_2_header* data, QObject* parent ) |
985 | :QObject( parent, "802.11 LLC" ), _header( data ) | 983 | :QObject( parent, "802.11 LLC" ), _header( data ) |
986 | { | 984 | { |
987 | qDebug( "OLLCPacket::OLLCPacket(): decoding frame..." ); | 985 | odebug << "OLLCPacket::OLLCPacket(): decoding frame..." << oendl; |
988 | 986 | ||
989 | if ( !(_header->oui[0] || _header->oui[1] || _header->oui[2]) ) | 987 | if ( !(_header->oui[0] || _header->oui[1] || _header->oui[2]) ) |
990 | { | 988 | { |
991 | qDebug( "OLLCPacket::OLLCPacket(): contains an encapsulated Ethernet frame (type=%04X)", EXTRACT_16BITS( &_header->type ) ); | 989 | owarn << "OLLCPacket::OLLCPacket(): contains an encapsulated Ethernet frame (type = " << EXTRACT_16BITS( &_header->type ) << ")" << oendl; |
992 | 990 | ||
993 | switch ( EXTRACT_16BITS( &_header->type ) ) // defined in linux/if_ether.h | 991 | switch ( EXTRACT_16BITS( &_header->type ) ) // defined in linux/if_ether.h |
994 | { | 992 | { |
995 | case ETH_P_IP: new OIPPacket( end, (const struct iphdr*) (data+1), this ); break; | 993 | case ETH_P_IP: new OIPPacket( end, (const struct iphdr*) (data+1), this ); break; |
996 | case ETH_P_ARP: new OARPPacket( end, (const struct myarphdr*) (data+1), this ); break; | 994 | case ETH_P_ARP: new OARPPacket( end, (const struct myarphdr*) (data+1), this ); break; |
997 | default: qWarning( "OLLCPacket::OLLCPacket(): Unknown Encapsulation (type=%04X)", EXTRACT_16BITS( &_header->type ) ); | 995 | default: owarn << "OLLCPacket::OLLCPacket(): Unknown Encapsulation type = " << EXTRACT_16BITS( &_header->type ) << oendl; |
998 | } | 996 | } |
999 | |||
1000 | } | 997 | } |
1001 | } | 998 | } |
1002 | 999 | ||
@@ -1013,7 +1010,7 @@ OLLCPacket::~OLLCPacket() | |||
1013 | OWaveLanControlPacket::OWaveLanControlPacket( const unsigned char* end, const struct ieee_802_11_control_header* data, OWaveLanPacket* parent ) | 1010 | OWaveLanControlPacket::OWaveLanControlPacket( const unsigned char* end, const struct ieee_802_11_control_header* data, OWaveLanPacket* parent ) |
1014 | :QObject( parent, "802.11 Control" ), _header( data ) | 1011 | :QObject( parent, "802.11 Control" ), _header( data ) |
1015 | { | 1012 | { |
1016 | qDebug( "OWaveLanControlPacket::OWaveLanDataControl(): decoding frame..." ); | 1013 | odebug << "OWaveLanControlPacket::OWaveLanDataControl(): decoding frame..." << oendl; |
1017 | //TODO: Implement this | 1014 | //TODO: Implement this |
1018 | } | 1015 | } |
1019 | 1016 | ||
@@ -1038,7 +1035,7 @@ OPacketCapturer::~OPacketCapturer() | |||
1038 | { | 1035 | { |
1039 | if ( _open ) | 1036 | if ( _open ) |
1040 | { | 1037 | { |
1041 | qDebug( "OPacketCapturer::~OPacketCapturer(): pcap still open, autoclosing." ); | 1038 | odebug << "OPacketCapturer::~OPacketCapturer(): pcap still open, autoclosing." << oendl; |
1042 | close(); | 1039 | close(); |
1043 | } | 1040 | } |
1044 | } | 1041 | } |
@@ -1048,11 +1045,11 @@ void OPacketCapturer::setBlocking( bool b ) | |||
1048 | { | 1045 | { |
1049 | if ( pcap_setnonblock( _pch, 1-b, _errbuf ) != -1 ) | 1046 | if ( pcap_setnonblock( _pch, 1-b, _errbuf ) != -1 ) |
1050 | { | 1047 | { |
1051 | qDebug( "OPacketCapturer::setBlocking(): blocking mode changed successfully." ); | 1048 | odebug << "OPacketCapturer::setBlocking(): blocking mode changed successfully." << oendl; |
1052 | } | 1049 | } |
1053 | else | 1050 | else |
1054 | { | 1051 | { |
1055 | qDebug( "OPacketCapturer::setBlocking(): can't change blocking mode: %s", _errbuf ); | 1052 | odebug << "OPacketCapturer::setBlocking(): can't change blocking mode: " << _errbuf << oendl; |
1056 | } | 1053 | } |
1057 | } | 1054 | } |
1058 | 1055 | ||
@@ -1062,7 +1059,7 @@ bool OPacketCapturer::blocking() const | |||
1062 | int b = pcap_getnonblock( _pch, _errbuf ); | 1059 | int b = pcap_getnonblock( _pch, _errbuf ); |
1063 | if ( b == -1 ) | 1060 | if ( b == -1 ) |
1064 | { | 1061 | { |
1065 | qDebug( "OPacketCapturer::blocking(): can't get blocking mode: %s", _errbuf ); | 1062 | odebug << "OPacketCapturer::blocking(): can't get blocking mode: " << _errbuf << oendl; |
1066 | return -1; | 1063 | return -1; |
1067 | } | 1064 | } |
1068 | return !b; | 1065 | return !b; |
@@ -1093,11 +1090,11 @@ void OPacketCapturer::close() | |||
1093 | _open = false; | 1090 | _open = false; |
1094 | } | 1091 | } |
1095 | 1092 | ||
1096 | qDebug( "OPacketCapturer::close() --- dumping capturing statistics..." ); | 1093 | odebug << "OPacketCapturer::close() --- dumping capturing statistics..." << oendl; |
1097 | qDebug( "--------------------------------------------------" ); | 1094 | odebug << "--------------------------------------------------" << oendl; |
1098 | for( QMap<QString,int>::Iterator it = _stats.begin(); it != _stats.end(); ++it ) | 1095 | for( QMap<QString,int>::Iterator it = _stats.begin(); it != _stats.end(); ++it ) |
1099 | qDebug( "%s : %d", (const char*) it.key(), it.data() ); | 1096 | odebug << it.key() << " = " << it.data() << oendl; |
1100 | qDebug( "--------------------------------------------------" ); | 1097 | odebug << "--------------------------------------------------" << oendl; |
1101 | 1098 | ||
1102 | } | 1099 | } |
1103 | 1100 | ||
@@ -1151,9 +1148,9 @@ OPacket* OPacketCapturer::next( int time ) | |||
1151 | OPacket* OPacketCapturer::next() | 1148 | OPacket* OPacketCapturer::next() |
1152 | { | 1149 | { |
1153 | packetheaderstruct header; | 1150 | packetheaderstruct header; |
1154 | qDebug( "==> OPacketCapturer::next()" ); | 1151 | odebug << "==> OPacketCapturer::next()" << oendl; |
1155 | const unsigned char* pdata = pcap_next( _pch, &header ); | 1152 | const unsigned char* pdata = pcap_next( _pch, &header ); |
1156 | qDebug( "<== OPacketCapturer::next()" ); | 1153 | odebug << "<== OPacketCapturer::next()" << oendl; |
1157 | 1154 | ||
1158 | if ( pdata && header.len ) | 1155 | if ( pdata && header.len ) |
1159 | { | 1156 | { |
@@ -1198,11 +1195,11 @@ bool OPacketCapturer::open( const QString& name ) | |||
1198 | 1195 | ||
1199 | if ( !handle ) | 1196 | if ( !handle ) |
1200 | { | 1197 | { |
1201 | qWarning( "OPacketCapturer::open(): can't open libpcap with '%s': %s", (const char*) name, _errbuf ); | 1198 | owarn << "OPacketCapturer::open(): can't open libpcap with '" << name << "': " << _errbuf << oendl; |
1202 | return false; | 1199 | return false; |
1203 | } | 1200 | } |
1204 | 1201 | ||
1205 | qDebug( "OPacketCapturer::open(): libpcap [%s] opened successfully.", (const char*) name ); | 1202 | odebug << "OPacketCapturer::open(): libpcap [" << name << "] opened successfully." << oendl; |
1206 | _pch = handle; | 1203 | _pch = handle; |
1207 | _open = true; | 1204 | _open = true; |
1208 | _stats.clear(); | 1205 | _stats.clear(); |
@@ -1223,10 +1220,10 @@ bool OPacketCapturer::openDumpFile( const QString& filename ) | |||
1223 | pcap_dumper_t* dump = pcap_dump_open( _pch, const_cast<char*>( (const char*) filename ) ); | 1220 | pcap_dumper_t* dump = pcap_dump_open( _pch, const_cast<char*>( (const char*) filename ) ); |
1224 | if ( !dump ) | 1221 | if ( !dump ) |
1225 | { | 1222 | { |
1226 | qWarning( "OPacketCapturer::open(): can't open dump with '%s': %s", (const char*) filename, _errbuf ); | 1223 | owarn << "OPacketCapturer::open(): can't open dump with '" << filename << "': " << _errbuf << oendl; |
1227 | return false; | 1224 | return false; |
1228 | } | 1225 | } |
1229 | qDebug( "OPacketCapturer::open(): dump [%s] opened successfully.", (const char*) filename ); | 1226 | odebug << "OPacketCapturer::open(): dump [" << filename << "] opened successfully." << oendl; |
1230 | _pcd = dump; | 1227 | _pcd = dump; |
1231 | 1228 | ||
1232 | return true; | 1229 | return true; |
@@ -1256,7 +1253,7 @@ bool OPacketCapturer::open( const QFile& file ) | |||
1256 | 1253 | ||
1257 | if ( handle ) | 1254 | if ( handle ) |
1258 | { | 1255 | { |
1259 | qDebug( "OPacketCapturer::open(): libpcap opened successfully." ); | 1256 | odebug << "OPacketCapturer::open(): libpcap opened successfully." << oendl; |
1260 | _pch = handle; | 1257 | _pch = handle; |
1261 | _open = true; | 1258 | _open = true; |
1262 | 1259 | ||
@@ -1271,7 +1268,7 @@ bool OPacketCapturer::open( const QFile& file ) | |||
1271 | } | 1268 | } |
1272 | else | 1269 | else |
1273 | { | 1270 | { |
1274 | qDebug( "OPacketCapturer::open(): can't open libpcap with '%s': %s", (const char*) name, _errbuf ); | 1271 | odebug << "OPacketCapturer::open(): can't open libpcap with '" << name << "': " << _errbuf << oendl; |
1275 | return false; | 1272 | return false; |
1276 | } | 1273 | } |
1277 | 1274 | ||
@@ -1286,7 +1283,7 @@ bool OPacketCapturer::isOpen() const | |||
1286 | 1283 | ||
1287 | void OPacketCapturer::readyToReceive() | 1284 | void OPacketCapturer::readyToReceive() |
1288 | { | 1285 | { |
1289 | qDebug( "OPacketCapturer::readyToReceive(): about to emit 'receivePacket(p)'" ); | 1286 | odebug << "OPacketCapturer::readyToReceive(): about to emit 'receivePacket(p)'" << oendl; |
1290 | OPacket* p = next(); | 1287 | OPacket* p = next(); |
1291 | emit receivedPacket( p ); | 1288 | emit receivedPacket( p ); |
1292 | // emit is synchronous - packet has been dealt with, now it's safe to delete | 1289 | // emit is synchronous - packet has been dealt with, now it's safe to delete |