-rw-r--r-- | libopie2/opienet/omanufacturerdb.cpp | 96 | ||||
-rw-r--r-- | libopie2/opienet/omanufacturerdb.h | 37 | ||||
-rw-r--r-- | libopie2/opienet/onetutils.cpp | 21 | ||||
-rw-r--r-- | libopie2/opienet/onetutils.h | 3 | ||||
-rw-r--r-- | libopie2/opienet/opcap.cpp | 8 | ||||
-rw-r--r-- | libopie2/opienet/opienet.pro | 12 |
6 files changed, 162 insertions, 15 deletions
diff --git a/libopie2/opienet/omanufacturerdb.cpp b/libopie2/opienet/omanufacturerdb.cpp new file mode 100644 index 0000000..ea15125 --- a/dev/null +++ b/libopie2/opienet/omanufacturerdb.cpp | |||
@@ -0,0 +1,96 @@ | |||
1 | /********************************************************************** | ||
2 | ** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. | ||
3 | ** | ||
4 | ** This file is part of Opie Environment. | ||
5 | ** | ||
6 | ** This file may be distributed and/or modified under the terms of the | ||
7 | ** GNU General Public License version 2 as published by the Free Software | ||
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | ||
9 | ** packaging of this file. | ||
10 | ** | ||
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | ||
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | ||
13 | ** | ||
14 | **********************************************************************/ | ||
15 | |||
16 | #include "omanufacturerdb.h" | ||
17 | |||
18 | // Qt | ||
19 | #include <qstring.h> | ||
20 | #include <qfile.h> | ||
21 | #include <qtextstream.h> | ||
22 | |||
23 | OManufacturerDB* OManufacturerDB::_instance = 0; | ||
24 | |||
25 | OManufacturerDB* OManufacturerDB::instance() | ||
26 | { | ||
27 | if ( !OManufacturerDB::_instance ) | ||
28 | { | ||
29 | qDebug( "OManufacturerDB::instance(): creating OManufacturerDB..." ); | ||
30 | _instance = new OManufacturerDB(); | ||
31 | } | ||
32 | return _instance; | ||
33 | } | ||
34 | |||
35 | |||
36 | OManufacturerDB::OManufacturerDB() | ||
37 | { | ||
38 | QString filename( "/etc/manufacturers" ); | ||
39 | qDebug( "OManufacturerDB: trying to read '%s'...", (const char*) filename ); | ||
40 | if ( !QFile::exists( filename ) ) | ||
41 | { | ||
42 | filename = "/opt/QtPalmtop/etc/manufacturers"; | ||
43 | qDebug( "OManufacturerDB: trying to read '%s'...", (const char*) filename ); | ||
44 | if ( !QFile::exists( filename ) ) | ||
45 | { | ||
46 | filename = "/usr/share/wellenreiter/manufacturers"; | ||
47 | qDebug( "OManufacturerDB: trying to read '%s'...", (const char*) filename ); | ||
48 | } | ||
49 | } | ||
50 | |||
51 | QFile file( filename ); | ||
52 | bool hasFile = file.open( IO_ReadOnly ); | ||
53 | if (!hasFile) | ||
54 | { | ||
55 | qWarning( "OManufacturerDB: no valid manufacturer list found.", (const char*) filename ); | ||
56 | } | ||
57 | else | ||
58 | { | ||
59 | qDebug( "OManufacturerDB: found manufacturer list in '%s'...", (const char*) filename ); | ||
60 | QTextStream s( &file ); | ||
61 | QString addr; | ||
62 | QString manu; | ||
63 | while (!s.atEnd()) | ||
64 | { | ||
65 | s >> addr; | ||
66 | if ( !addr ) // read nothing!? | ||
67 | { | ||
68 | continue; | ||
69 | } | ||
70 | else | ||
71 | if ( addr[0] == '#' ) | ||
72 | { | ||
73 | s.readLine(); | ||
74 | continue; | ||
75 | } | ||
76 | s.skipWhiteSpace(); | ||
77 | s >> manu; | ||
78 | s.readLine(); | ||
79 | //qDebug( "ManufacturerDB: read pair %s, %s", (const char*) addr, (const char*) manu ); | ||
80 | manufacturers.insert( addr, manu ); | ||
81 | |||
82 | } | ||
83 | } | ||
84 | |||
85 | } | ||
86 | |||
87 | |||
88 | OManufacturerDB::~OManufacturerDB() | ||
89 | { | ||
90 | } | ||
91 | |||
92 | |||
93 | const QString& OManufacturerDB::lookup( const QString& macaddr ) const | ||
94 | { | ||
95 | return manufacturers[macaddr.upper().left(8)]; | ||
96 | } | ||
diff --git a/libopie2/opienet/omanufacturerdb.h b/libopie2/opienet/omanufacturerdb.h new file mode 100644 index 0000000..5e66c37 --- a/dev/null +++ b/libopie2/opienet/omanufacturerdb.h | |||
@@ -0,0 +1,37 @@ | |||
1 | /********************************************************************** | ||
2 | ** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. | ||
3 | ** | ||
4 | ** This file is part of Opie Environment. | ||
5 | ** | ||
6 | ** This file may be distributed and/or modified under the terms of the | ||
7 | ** GNU General Public License version 2 as published by the Free Software | ||
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | ||
9 | ** packaging of this file. | ||
10 | ** | ||
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | ||
12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. | ||
13 | ** | ||
14 | **********************************************************************/ | ||
15 | |||
16 | #ifndef OMANUFACTURERDB_H | ||
17 | #define OMANUFACTURERDB_H | ||
18 | |||
19 | #include <qmap.h> | ||
20 | |||
21 | class OManufacturerDB | ||
22 | { | ||
23 | public: | ||
24 | static OManufacturerDB* instance(); | ||
25 | const QString& lookup( const QString& macaddr ) const; | ||
26 | |||
27 | protected: | ||
28 | OManufacturerDB(); | ||
29 | virtual ~OManufacturerDB(); | ||
30 | |||
31 | private: | ||
32 | QMap<QString, QString> manufacturers; | ||
33 | static OManufacturerDB* _instance; | ||
34 | }; | ||
35 | |||
36 | #endif | ||
37 | |||
diff --git a/libopie2/opienet/onetutils.cpp b/libopie2/opienet/onetutils.cpp index 2485f30..236f108 100644 --- a/libopie2/opienet/onetutils.cpp +++ b/libopie2/opienet/onetutils.cpp | |||
@@ -10,48 +10,49 @@ | |||
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
11 | .="- .-=="i, .._ License as published by the Free Software | 11 | .="- .-=="i, .._ License as published by the Free Software |
12 | - . .-<_> .<> Foundation; either version 2 of the License, | 12 | - . .-<_> .<> Foundation; either version 2 of the License, |
13 | ._= =} : or (at your option) any later version. | 13 | ._= =} : or (at your option) any later version. |
14 | .%`+i> _;_. | 14 | .%`+i> _;_. |
15 | .i_,=:_. -<s. This program is distributed in the hope that | 15 | .i_,=:_. -<s. This program is distributed in the hope that |
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
17 | : .. .:, . . . without even the implied warranty of | 17 | : .. .:, . . . without even the implied warranty of |
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
20 | ..}^=.= = ; Library General Public License for more | 20 | ..}^=.= = ; Library General Public License for more |
21 | ++= -. .` .: details. | 21 | ++= -. .` .: details. |
22 | : = ...= . :.=- | 22 | : = ...= . :.=- |
23 | -. .:....=;==+<; You should have received a copy of the GNU | 23 | -. .:....=;==+<; You should have received a copy of the GNU |
24 | -_. . . )=. = Library General Public License along with | 24 | -_. . . )=. = Library General Public License along with |
25 | -- :-=` this library; see the file COPYING.LIB. | 25 | -- :-=` this library; see the file COPYING.LIB. |
26 | If not, write to the Free Software Foundation, | 26 | If not, write to the Free Software Foundation, |
27 | Inc., 59 Temple Place - Suite 330, | 27 | Inc., 59 Temple Place - Suite 330, |
28 | Boston, MA 02111-1307, USA. | 28 | Boston, MA 02111-1307, USA. |
29 | 29 | ||
30 | */ | 30 | */ |
31 | 31 | ||
32 | #include <opie2/onetutils.h> | 32 | #include <opie2/onetutils.h> |
33 | #include <opie2/onetwork.h> | 33 | #include <opie2/onetwork.h> |
34 | #include <opie2/omanufacturerdb.h> | ||
34 | 35 | ||
35 | #include <net/if.h> | 36 | #include <net/if.h> |
36 | 37 | ||
37 | #include <cstdio> | 38 | #include <cstdio> |
38 | using namespace std; | 39 | using namespace std; |
39 | 40 | ||
40 | #define IW_PRIV_TYPE_MASK 0x7000 | 41 | #define IW_PRIV_TYPE_MASK 0x7000 |
41 | #define IW_PRIV_TYPE_NONE 0x0000 | 42 | #define IW_PRIV_TYPE_NONE 0x0000 |
42 | #define IW_PRIV_TYPE_BYTE 0x1000 | 43 | #define IW_PRIV_TYPE_BYTE 0x1000 |
43 | #define IW_PRIV_TYPE_CHAR 0x2000 | 44 | #define IW_PRIV_TYPE_CHAR 0x2000 |
44 | #define IW_PRIV_TYPE_INT 0x4000 | 45 | #define IW_PRIV_TYPE_INT 0x4000 |
45 | #define IW_PRIV_TYPE_FLOAT 0x5000 | 46 | #define IW_PRIV_TYPE_FLOAT 0x5000 |
46 | #define IW_PRIV_TYPE_ADDR 0x6000 | 47 | #define IW_PRIV_TYPE_ADDR 0x6000 |
47 | #define IW_PRIV_SIZE_FIXED 0x0800 | 48 | #define IW_PRIV_SIZE_FIXED 0x0800 |
48 | #define IW_PRIV_SIZE_MASK 0x07FF | 49 | #define IW_PRIV_SIZE_MASK 0x07FF |
49 | 50 | ||
50 | /*====================================================================================== | 51 | /*====================================================================================== |
51 | * OMacAddress | 52 | * OMacAddress |
52 | *======================================================================================*/ | 53 | *======================================================================================*/ |
53 | 54 | ||
54 | // static initializer for broadcast and unknown MAC Adresses | 55 | // static initializer for broadcast and unknown MAC Adresses |
55 | const unsigned char __broadcast[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; | 56 | const unsigned char __broadcast[6] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; |
56 | const OMacAddress& OMacAddress::broadcast = OMacAddress( __broadcast ); | 57 | const OMacAddress& OMacAddress::broadcast = OMacAddress( __broadcast ); |
57 | const unsigned char __unknown[6] = { 0x44, 0x44, 0x44, 0x44, 0x44, 0x44 }; | 58 | const unsigned char __unknown[6] = { 0x44, 0x44, 0x44, 0x44, 0x44, 0x44 }; |
@@ -88,58 +89,66 @@ OMacAddress::~OMacAddress() | |||
88 | //#endif | 89 | //#endif |
89 | const unsigned char* OMacAddress::native() const | 90 | const unsigned char* OMacAddress::native() const |
90 | { | 91 | { |
91 | return (const unsigned char*) &_bytes; | 92 | return (const unsigned char*) &_bytes; |
92 | } | 93 | } |
93 | 94 | ||
94 | 95 | ||
95 | OMacAddress OMacAddress::fromString( const QString& str ) | 96 | OMacAddress OMacAddress::fromString( const QString& str ) |
96 | { | 97 | { |
97 | QString addr( str ); | 98 | QString addr( str ); |
98 | unsigned char buf[6]; | 99 | unsigned char buf[6]; |
99 | bool ok = true; | 100 | bool ok = true; |
100 | int index = 14; | 101 | int index = 14; |
101 | for ( int i = 5; i >= 0; --i ) | 102 | for ( int i = 5; i >= 0; --i ) |
102 | { | 103 | { |
103 | buf[i] = addr.right( 2 ).toUShort( &ok, 16 ); | 104 | buf[i] = addr.right( 2 ).toUShort( &ok, 16 ); |
104 | if ( !ok ) return OMacAddress::unknown; | 105 | if ( !ok ) return OMacAddress::unknown; |
105 | addr.truncate( index ); | 106 | addr.truncate( index ); |
106 | index -= 3; | 107 | index -= 3; |
107 | } | 108 | } |
108 | return (const unsigned char*) &buf; | 109 | return (const unsigned char*) &buf; |
109 | } | 110 | } |
110 | 111 | ||
111 | 112 | ||
112 | QString OMacAddress::toString() const | 113 | QString OMacAddress::toString( bool substitute ) const |
113 | { | 114 | { |
114 | QString s; | 115 | QString manu; |
115 | s.sprintf( "%.2X:%.2X:%.2X:%.2X:%.2X:%.2X", | 116 | manu.sprintf( "%.2X:%.2X:%.2X", _bytes[0]&0xff, _bytes[1]&0xff, _bytes[2]&0xff ); |
116 | _bytes[0]&0xff, _bytes[1]&0xff, _bytes[2]&0xff, | 117 | QString serial; |
117 | _bytes[3]&0xff, _bytes[4]&0xff, _bytes[5]&0xff ); | 118 | serial.sprintf( ":%.2X:%.2X:%.2X", _bytes[3]&0xff, _bytes[4]&0xff, _bytes[5]&0xff ); |
118 | return s; | 119 | if ( !substitute ) return manu+serial; |
120 | // fallback - if no vendor is found, just use the number | ||
121 | QString textmanu = OManufacturerDB::instance()->lookup( manu ); | ||
122 | return textmanu.isNull() ? manu+serial : textmanu + serial; | ||
119 | } | 123 | } |
120 | 124 | ||
121 | 125 | ||
126 | QString OMacAddress::manufacturer() const | ||
127 | { | ||
128 | return OManufacturerDB::instance()->lookup( toString() ); | ||
129 | } | ||
130 | |||
122 | bool operator==( const OMacAddress &m1, const OMacAddress &m2 ) | 131 | bool operator==( const OMacAddress &m1, const OMacAddress &m2 ) |
123 | { | 132 | { |
124 | return memcmp( &m1._bytes, &m2._bytes, 6 ) == 0; | 133 | return memcmp( &m1._bytes, &m2._bytes, 6 ) == 0; |
125 | } | 134 | } |
126 | 135 | ||
127 | 136 | ||
128 | /*====================================================================================== | 137 | /*====================================================================================== |
129 | * OHostAddress | 138 | * OHostAddress |
130 | *======================================================================================*/ | 139 | *======================================================================================*/ |
131 | 140 | ||
132 | 141 | ||
133 | /*====================================================================================== | 142 | /*====================================================================================== |
134 | * OPrivateIOCTL | 143 | * OPrivateIOCTL |
135 | *======================================================================================*/ | 144 | *======================================================================================*/ |
136 | 145 | ||
137 | OPrivateIOCTL::OPrivateIOCTL( QObject* parent, const char* name, int cmd, int getargs, int setargs ) | 146 | OPrivateIOCTL::OPrivateIOCTL( QObject* parent, const char* name, int cmd, int getargs, int setargs ) |
138 | :QObject( parent, name ), _ioctl( cmd ), _getargs( getargs ), _setargs( setargs ) | 147 | :QObject( parent, name ), _ioctl( cmd ), _getargs( getargs ), _setargs( setargs ) |
139 | { | 148 | { |
140 | } | 149 | } |
141 | 150 | ||
142 | 151 | ||
143 | OPrivateIOCTL::~OPrivateIOCTL() | 152 | OPrivateIOCTL::~OPrivateIOCTL() |
144 | { | 153 | { |
145 | } | 154 | } |
diff --git a/libopie2/opienet/onetutils.h b/libopie2/opienet/onetutils.h index 73d52cc..bedea63 100644 --- a/libopie2/opienet/onetutils.h +++ b/libopie2/opienet/onetutils.h | |||
@@ -34,49 +34,50 @@ | |||
34 | 34 | ||
35 | #include <qdict.h> | 35 | #include <qdict.h> |
36 | #include <qmap.h> | 36 | #include <qmap.h> |
37 | #include <qstring.h> | 37 | #include <qstring.h> |
38 | #include <qhostaddress.h> | 38 | #include <qhostaddress.h> |
39 | #include <qobject.h> | 39 | #include <qobject.h> |
40 | 40 | ||
41 | #include <sys/types.h> | 41 | #include <sys/types.h> |
42 | 42 | ||
43 | struct ifreq; | 43 | struct ifreq; |
44 | class OWirelessNetworkInterface; | 44 | class OWirelessNetworkInterface; |
45 | 45 | ||
46 | /*====================================================================================== | 46 | /*====================================================================================== |
47 | * OMacAddress | 47 | * OMacAddress |
48 | *======================================================================================*/ | 48 | *======================================================================================*/ |
49 | 49 | ||
50 | class OMacAddress | 50 | class OMacAddress |
51 | { | 51 | { |
52 | public: | 52 | public: |
53 | OMacAddress( unsigned char* ); | 53 | OMacAddress( unsigned char* ); |
54 | OMacAddress( const unsigned char* ); | 54 | OMacAddress( const unsigned char* ); |
55 | OMacAddress( struct ifreq& ); | 55 | OMacAddress( struct ifreq& ); |
56 | ~OMacAddress(); | 56 | ~OMacAddress(); |
57 | 57 | ||
58 | QString toString() const; | 58 | QString manufacturer() const; |
59 | QString toString( bool substitute = false ) const; | ||
59 | const unsigned char* native() const; | 60 | const unsigned char* native() const; |
60 | 61 | ||
61 | static OMacAddress fromString( const QString& ); | 62 | static OMacAddress fromString( const QString& ); |
62 | 63 | ||
63 | public: | 64 | public: |
64 | static const OMacAddress& broadcast; // ff:ff:ff:ff:ff:ff | 65 | static const OMacAddress& broadcast; // ff:ff:ff:ff:ff:ff |
65 | static const OMacAddress& unknown; // 44:44:44:44:44:44 | 66 | static const OMacAddress& unknown; // 44:44:44:44:44:44 |
66 | 67 | ||
67 | private: | 68 | private: |
68 | unsigned char _bytes[6]; | 69 | unsigned char _bytes[6]; |
69 | 70 | ||
70 | friend bool operator==( const OMacAddress &m1, const OMacAddress &m2 ); | 71 | friend bool operator==( const OMacAddress &m1, const OMacAddress &m2 ); |
71 | 72 | ||
72 | }; | 73 | }; |
73 | 74 | ||
74 | bool operator==( const OMacAddress &m1, const OMacAddress &m2 ); | 75 | bool operator==( const OMacAddress &m1, const OMacAddress &m2 ); |
75 | 76 | ||
76 | 77 | ||
77 | /*====================================================================================== | 78 | /*====================================================================================== |
78 | * OHostAddress | 79 | * OHostAddress |
79 | *======================================================================================*/ | 80 | *======================================================================================*/ |
80 | 81 | ||
81 | class OHostAddress : public QHostAddress | 82 | class OHostAddress : public QHostAddress |
82 | { | 83 | { |
diff --git a/libopie2/opienet/opcap.cpp b/libopie2/opienet/opcap.cpp index 6ddd457..40aac2c 100644 --- a/libopie2/opienet/opcap.cpp +++ b/libopie2/opienet/opcap.cpp | |||
@@ -618,70 +618,70 @@ OWaveLanManagementIBSS::~OWaveLanManagementIBSS() | |||
618 | } | 618 | } |
619 | 619 | ||
620 | /*====================================================================================== | 620 | /*====================================================================================== |
621 | * OWaveLanManagementChallenge | 621 | * OWaveLanManagementChallenge |
622 | *======================================================================================*/ | 622 | *======================================================================================*/ |
623 | 623 | ||
624 | OWaveLanManagementChallenge::OWaveLanManagementChallenge( const unsigned char* end, const struct challenge_t* data, QObject* parent ) | 624 | OWaveLanManagementChallenge::OWaveLanManagementChallenge( const unsigned char* end, const struct challenge_t* data, QObject* parent ) |
625 | :QObject( parent, "802.11 Challenge" ), _data( data ) | 625 | :QObject( parent, "802.11 Challenge" ), _data( data ) |
626 | { | 626 | { |
627 | qDebug( "OWaveLanManagementChallenge()" ); | 627 | qDebug( "OWaveLanManagementChallenge()" ); |
628 | } | 628 | } |
629 | 629 | ||
630 | 630 | ||
631 | OWaveLanManagementChallenge::~OWaveLanManagementChallenge() | 631 | OWaveLanManagementChallenge::~OWaveLanManagementChallenge() |
632 | { | 632 | { |
633 | } | 633 | } |
634 | 634 | ||
635 | /*====================================================================================== | 635 | /*====================================================================================== |
636 | * OWaveLanDataPacket | 636 | * OWaveLanDataPacket |
637 | *======================================================================================*/ | 637 | *======================================================================================*/ |
638 | 638 | ||
639 | OWaveLanDataPacket::OWaveLanDataPacket( const unsigned char* end, const struct ieee_802_11_data_header* data, OWaveLanPacket* parent ) | 639 | OWaveLanDataPacket::OWaveLanDataPacket( const unsigned char* end, const struct ieee_802_11_data_header* data, OWaveLanPacket* parent ) |
640 | :QObject( parent, "802.11 Data" ), _header( data ) | 640 | :QObject( parent, "802.11 Data" ), _header( data ) |
641 | { | 641 | { |
642 | //qDebug( "size of header = %d", sizeof( struct ieee_802_11_data_header ) ); | 642 | qDebug( "OWaveLanDataPacket::OWaveLanDataPacket(): decoding frame..." ); |
643 | //qDebug( "header: %0x", data ); | 643 | |
644 | const unsigned char* payload = (const unsigned char*) data + sizeof( struct ieee_802_11_data_header ); | 644 | const unsigned char* payload = (const unsigned char*) data + sizeof( struct ieee_802_11_data_header ); |
645 | //qDebug( "payload: %0x", payload ); | ||
646 | 645 | ||
646 | #warning The next line works for most cases, but can not be correct generally! | ||
647 | if (!( ( (OWaveLanPacket*) this->parent())->duration() )) payload -= 6; // compensation for missing last address | 647 | if (!( ( (OWaveLanPacket*) this->parent())->duration() )) payload -= 6; // compensation for missing last address |
648 | 648 | ||
649 | new OLLCPacket( end, (const struct ieee_802_11_802_2_header*) payload, this ); | 649 | new OLLCPacket( end, (const struct ieee_802_11_802_2_header*) payload, this ); |
650 | } | 650 | } |
651 | 651 | ||
652 | 652 | ||
653 | OWaveLanDataPacket::~OWaveLanDataPacket() | 653 | OWaveLanDataPacket::~OWaveLanDataPacket() |
654 | { | 654 | { |
655 | } | 655 | } |
656 | 656 | ||
657 | 657 | ||
658 | /*====================================================================================== | 658 | /*====================================================================================== |
659 | * OLLCPacket | 659 | * OLLCPacket |
660 | *======================================================================================*/ | 660 | *======================================================================================*/ |
661 | 661 | ||
662 | OLLCPacket::OLLCPacket( const unsigned char* end, const struct ieee_802_11_802_2_header* data, QObject* parent ) | 662 | OLLCPacket::OLLCPacket( const unsigned char* end, const struct ieee_802_11_802_2_header* data, QObject* parent ) |
663 | :QObject( parent, "802.11 802_2" ), _header( data ) | 663 | :QObject( parent, "802.11 LLC" ), _header( data ) |
664 | { | 664 | { |
665 | qDebug( "OLLCPacket::OLLCPacket(): decoding frame..." ); | 665 | qDebug( "OLLCPacket::OLLCPacket(): decoding frame..." ); |
666 | 666 | ||
667 | if ( !(_header->oui[0] || _header->oui[1] || _header->oui[2]) ) | 667 | if ( !(_header->oui[0] || _header->oui[1] || _header->oui[2]) ) |
668 | { | 668 | { |
669 | qDebug( "OLLCPacket::OLLCPacket(): contains an encapsulated Ethernet frame (type=%04X)", EXTRACT_16BITS( &_header->type ) ); | 669 | qDebug( "OLLCPacket::OLLCPacket(): contains an encapsulated Ethernet frame (type=%04X)", EXTRACT_16BITS( &_header->type ) ); |
670 | 670 | ||
671 | switch ( EXTRACT_16BITS( &_header->type ) ) // defined in linux/if_ether.h | 671 | switch ( EXTRACT_16BITS( &_header->type ) ) // defined in linux/if_ether.h |
672 | { | 672 | { |
673 | case ETH_P_IP: new OIPPacket( end, (const struct iphdr*) (data+1), this ); break; | 673 | case ETH_P_IP: new OIPPacket( end, (const struct iphdr*) (data+1), this ); break; |
674 | default: qDebug( "OLLCPacket::OLLCPacket(): Unknown Encapsulation Type" ); | 674 | default: qDebug( "OLLCPacket::OLLCPacket(): Unknown Encapsulation Type" ); |
675 | } | 675 | } |
676 | 676 | ||
677 | } | 677 | } |
678 | } | 678 | } |
679 | 679 | ||
680 | 680 | ||
681 | OLLCPacket::~OLLCPacket() | 681 | OLLCPacket::~OLLCPacket() |
682 | { | 682 | { |
683 | } | 683 | } |
684 | 684 | ||
685 | /*====================================================================================== | 685 | /*====================================================================================== |
686 | * OPacketCapturer | 686 | * OPacketCapturer |
687 | *======================================================================================*/ | 687 | *======================================================================================*/ |
diff --git a/libopie2/opienet/opienet.pro b/libopie2/opienet/opienet.pro index e73afbf..3f9166a 100644 --- a/libopie2/opienet/opienet.pro +++ b/libopie2/opienet/opienet.pro | |||
@@ -1,18 +1,22 @@ | |||
1 | TEMPLATE = lib | 1 | TEMPLATE = lib |
2 | CONFIG += qt warn_on debug | 2 | CONFIG += qt warn_on debug |
3 | DESTDIR = $(OPIEDIR)/lib | 3 | DESTDIR = $(OPIEDIR)/lib |
4 | HEADERS = onetutils.cpp onetwork.h opcap.h | 4 | HEADERS = omanufacturerdb.cpp \ |
5 | 5 | onetutils.cpp \ | |
6 | SOURCES = onetutils.cpp onetwork.cpp opcap.cpp | 6 | onetwork.h \ |
7 | opcap.h | ||
8 | SOURCES = omanufacturerdb.cpp \ | ||
9 | onetutils.cpp \ | ||
10 | onetwork.cpp \ | ||
11 | opcap.cpp | ||
7 | INTERFACES = | 12 | INTERFACES = |
8 | TARGET = opienet2 | 13 | TARGET = opienet2 |
9 | VERSION = 1.8.1 | 14 | VERSION = 1.8.1 |
10 | INCLUDEPATH += $(OPIEDIR)/include | 15 | INCLUDEPATH += $(OPIEDIR)/include |
11 | DEPENDPATH += $(OPIEDIR)/include | 16 | DEPENDPATH += $(OPIEDIR)/include |
12 | LIBS += -lpcap | 17 | LIBS += -lpcap |
13 | |||
14 | MOC_DIR = moc | 18 | MOC_DIR = moc |
15 | OBJECTS_DIR = obj | 19 | OBJECTS_DIR = obj |
16 | 20 | ||
17 | include ( $(OPIEDIR)/include.pro ) | 21 | include ( $(OPIEDIR)/include.pro ) |
18 | 22 | ||