-rw-r--r-- | libopie2/opienet/opcap.h | 166 |
1 files changed, 154 insertions, 12 deletions
diff --git a/libopie2/opienet/opcap.h b/libopie2/opienet/opcap.h index 65c550c..0b06572 100644 --- a/libopie2/opienet/opcap.h +++ b/libopie2/opienet/opcap.h @@ -61,4 +61,5 @@ typedef struct pcap_pkthdr packetheaderstruct; /* FORWARDS */ class OPacketCapturer; +class QSocketNotifier; /*====================================================================================== @@ -85,4 +86,5 @@ class OPacket : public QObject const packetheaderstruct _hdr; // pcap packet header const unsigned char* _data; // pcap packet data + const unsigned char* _end; // end of pcap packet data }; @@ -96,5 +98,5 @@ class OEthernetPacket : public QObject public: - OEthernetPacket( const struct ether_header*, QObject* parent = 0 ); + OEthernetPacket( const unsigned char*, const struct ether_header*, QObject* parent = 0 ); virtual ~OEthernetPacket(); @@ -117,5 +119,5 @@ class OWaveLanPacket : public QObject public: - OWaveLanPacket( const struct ieee_802_11_header*, QObject* parent = 0 ); + OWaveLanPacket( const unsigned char*, const struct ieee_802_11_header*, QObject* parent = 0 ); virtual ~OWaveLanPacket(); @@ -147,8 +149,15 @@ class OWaveLanManagementPacket : public QObject public: - OWaveLanManagementPacket( const struct ieee_802_11_mgmt_header*, OWaveLanPacket* parent = 0 ); + OWaveLanManagementPacket( const unsigned char*, const struct ieee_802_11_mgmt_header*, OWaveLanPacket* parent = 0 ); virtual ~OWaveLanManagementPacket(); - QString SSID() const; + int beaconInterval() const; + int capabilities() const; // generic + + bool canESS() const; + bool canIBSS() const; + bool canCFP() const; + bool canCFP_REQ() const; + bool canPrivacy() const; private: @@ -159,4 +168,136 @@ class OWaveLanManagementPacket : public QObject /*====================================================================================== + * OWaveLanManagementSSID + *======================================================================================*/ + +class OWaveLanManagementSSID : public QObject +{ + Q_OBJECT + + public: + OWaveLanManagementSSID( const unsigned char*, const struct ssid_t*, QObject* parent = 0 ); + virtual ~OWaveLanManagementSSID(); + + QString ID() const; + + private: + const struct ssid_t* _data; +}; + +/*====================================================================================== + * OWaveLanManagementRates + *======================================================================================*/ + +class OWaveLanManagementRates : public QObject +{ + Q_OBJECT + + public: + OWaveLanManagementRates( const unsigned char*, const struct rates_t*, QObject* parent = 0 ); + virtual ~OWaveLanManagementRates(); + + private: + const struct rates_t* _data; +}; + +/*====================================================================================== + * OWaveLanManagementCF + *======================================================================================*/ + +class OWaveLanManagementCF : public QObject +{ + Q_OBJECT + + public: + OWaveLanManagementCF( const unsigned char*, const struct cf_t*, QObject* parent = 0 ); + virtual ~OWaveLanManagementCF(); + + private: + const struct cf_t* _data; +}; + +/*====================================================================================== + * OWaveLanManagementFH + *======================================================================================*/ + +class OWaveLanManagementFH : public QObject +{ + Q_OBJECT + + public: + OWaveLanManagementFH( const unsigned char*, const struct fh_t*, QObject* parent = 0 ); + virtual ~OWaveLanManagementFH(); + + private: + const struct fh_t* _data; +}; + +/*====================================================================================== + * OWaveLanManagementDS + *======================================================================================*/ + +class OWaveLanManagementDS : public QObject +{ + Q_OBJECT + + public: + OWaveLanManagementDS( const unsigned char*, const struct ds_t*, QObject* parent = 0 ); + virtual ~OWaveLanManagementDS(); + + int channel() const; + + private: + const struct ds_t* _data; +}; + +/*====================================================================================== + * OWaveLanManagementTim + *======================================================================================*/ + +class OWaveLanManagementTim : public QObject +{ + Q_OBJECT + + public: + OWaveLanManagementTim( const unsigned char*, const struct tim_t*, QObject* parent = 0 ); + virtual ~OWaveLanManagementTim(); + + private: + const struct tim_t* _data; +}; + +/*====================================================================================== + * OWaveLanManagementIBSS + *======================================================================================*/ + +class OWaveLanManagementIBSS : public QObject +{ + Q_OBJECT + + public: + OWaveLanManagementIBSS( const unsigned char*, const struct ibss_t*, QObject* parent = 0 ); + virtual ~OWaveLanManagementIBSS(); + + private: + const struct ibss_t* _data; +}; + +/*====================================================================================== + * OWaveLanManagementChallenge + *======================================================================================*/ + +class OWaveLanManagementChallenge : public QObject +{ + Q_OBJECT + + public: + OWaveLanManagementChallenge( const unsigned char*, const struct challenge_t*, QObject* parent = 0 ); + virtual ~OWaveLanManagementChallenge(); + + private: + const struct challenge_t* _data; +}; + +/*====================================================================================== * OWaveLanDataPacket - type: data (T_DATA) *======================================================================================*/ @@ -167,5 +308,5 @@ class OWaveLanDataPacket : public QObject public: - OWaveLanDataPacket( const struct ieee_802_11_data_header*, OWaveLanPacket* parent = 0 ); + OWaveLanDataPacket( const unsigned char*, const struct ieee_802_11_data_header*, OWaveLanPacket* parent = 0 ); virtual ~OWaveLanDataPacket(); @@ -183,5 +324,5 @@ class OLLCPacket : public QObject public: - OLLCPacket( const struct ieee_802_11_802_2_header* data, QObject* parent = 0 ); + OLLCPacket( const unsigned char*, const struct ieee_802_11_802_2_header* data, QObject* parent = 0 ); virtual ~OLLCPacket(); @@ -199,5 +340,5 @@ class OIPPacket : public QObject public: - OIPPacket( const struct iphdr*, QObject* parent = 0 ); + OIPPacket( const unsigned char*, const struct iphdr*, QObject* parent = 0 ); virtual ~OIPPacket(); @@ -226,5 +367,5 @@ class OUDPPacket : public QObject public: - OUDPPacket( const struct udphdr*, QObject* parent = 0 ); + OUDPPacket( const unsigned char*, const struct udphdr*, QObject* parent = 0 ); virtual ~OUDPPacket(); @@ -245,5 +386,5 @@ class OTCPPacket : public QObject public: - OTCPPacket( const struct tcphdr*, QObject* parent = 0 ); + OTCPPacket( const unsigned char*, const struct tcphdr*, QObject* parent = 0 ); virtual ~OTCPPacket(); @@ -285,7 +426,8 @@ class OPacketCapturer : public QObject protected: - QString _name; // devicename - bool _open; // check this before doing pcap calls - pcap_t* _pch; // pcap library handle + QString _name; // devicename + bool _open; // check this before doing pcap calls + pcap_t* _pch; // pcap library handle + QSocketNotifier* _sn; // socket notifier for main loop mutable char _errbuf[PCAP_ERRBUF_SIZE]; }; |