-rw-r--r-- | noncore/net/wellenreiter/gui/protolistview.cpp | 12 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/protolistview.h | 2 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.cpp | 75 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.h | 3 |
4 files changed, 77 insertions, 15 deletions
diff --git a/noncore/net/wellenreiter/gui/protolistview.cpp b/noncore/net/wellenreiter/gui/protolistview.cpp index 05ff5e7..d4b0dfe 100644 --- a/noncore/net/wellenreiter/gui/protolistview.cpp +++ b/noncore/net/wellenreiter/gui/protolistview.cpp | |||
@@ -98,14 +98,20 @@ void ProtocolListView::addProtocol( const QString& name ) | |||
98 | 98 | ||
99 | bool ProtocolListView::isProtocolChecked( const QString& name ) | 99 | bool ProtocolListView::isProtocolChecked( const QString& name ) |
100 | { | 100 | { |
101 | QCheckBox* box = (QCheckBox*) child( (const char*) name ); | 101 | QCheckBox* box = (QCheckBox*) child( (const char*) name ); |
102 | return ( box && box->isOn() ); | 102 | return ( box && box->isOn() ); |
103 | } | 103 | } |
104 | 104 | ||
105 | 105 | ||
106 | QString ProtocolListView::protocolAction( const QString& name ) const | 106 | QString ProtocolListView::protocolAction( const QString& name ) |
107 | { | 107 | { |
108 | //FIXME | 108 | //QObject * child ( const char * objName, const char * inheritsClass = 0, |
109 | // bool recursiveSearch = TRUE ) | ||
110 | |||
111 | QComboBox* combo = (QComboBox*) child( (const char*) name, "QComboBox" ); | ||
112 | if ( combo ) | ||
113 | return combo->currentText(); | ||
114 | else | ||
115 | return "<unknown>"; | ||
109 | } | 116 | } |
110 | 117 | ||
111 | |||
diff --git a/noncore/net/wellenreiter/gui/protolistview.h b/noncore/net/wellenreiter/gui/protolistview.h index 723e8cd..166b648 100644 --- a/noncore/net/wellenreiter/gui/protolistview.h +++ b/noncore/net/wellenreiter/gui/protolistview.h | |||
@@ -27,17 +27,17 @@ class QVBox; | |||
27 | 27 | ||
28 | class ProtocolListView : public QScrollView | 28 | class ProtocolListView : public QScrollView |
29 | { | 29 | { |
30 | public: | 30 | public: |
31 | ProtocolListView( QWidget* parent = 0, const char* name = 0, WFlags f = 0 ); | 31 | ProtocolListView( QWidget* parent = 0, const char* name = 0, WFlags f = 0 ); |
32 | virtual ~ProtocolListView(); | 32 | virtual ~ProtocolListView(); |
33 | 33 | ||
34 | bool isProtocolChecked( const QString& name ); | 34 | bool isProtocolChecked( const QString& name ); |
35 | QString protocolAction( const QString& name ) const; | 35 | QString protocolAction( const QString& name ); |
36 | 36 | ||
37 | protected: | 37 | protected: |
38 | virtual void addProtocol( const QString& name ); | 38 | virtual void addProtocol( const QString& name ); |
39 | 39 | ||
40 | private: | 40 | private: |
41 | QVBox* vbox; | 41 | QVBox* vbox; |
42 | bool actions; | 42 | bool actions; |
43 | }; | 43 | }; |
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp index 2f3d093..edf7dcf 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.cpp +++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp | |||
@@ -8,16 +8,28 @@ | |||
8 | ** Foundation and appearing in the file LICENSE.GPL included in the | 8 | ** Foundation and appearing in the file LICENSE.GPL included in the |
9 | ** packaging of this file. | 9 | ** packaging of this file. |
10 | ** | 10 | ** |
11 | ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE | 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. | 12 | ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
13 | ** | 13 | ** |
14 | ***********************************************************************/ | 14 | ***********************************************************************/ |
15 | 15 | ||
16 | // Local | ||
17 | |||
18 | #include "wellenreiter.h" | ||
19 | #include "scanlist.h" | ||
20 | #include "logwindow.h" | ||
21 | #include "hexwindow.h" | ||
22 | #include "configwindow.h" | ||
23 | #include "statwindow.h" | ||
24 | #include "graphwindow.h" | ||
25 | #include "manufacturers.h" | ||
26 | #include "protolistview.h" | ||
27 | |||
16 | // Opie | 28 | // Opie |
17 | 29 | ||
18 | #ifdef QWS | 30 | #ifdef QWS |
19 | #include <opie/odevice.h> | 31 | #include <opie/odevice.h> |
20 | using namespace Opie; | 32 | using namespace Opie; |
21 | #endif | 33 | #endif |
22 | 34 | ||
23 | #ifdef QWS | 35 | #ifdef QWS |
@@ -31,41 +43,31 @@ using namespace Opie; | |||
31 | // Qt | 43 | // Qt |
32 | 44 | ||
33 | #include <qcheckbox.h> | 45 | #include <qcheckbox.h> |
34 | #include <qcombobox.h> | 46 | #include <qcombobox.h> |
35 | #include <qdatetime.h> | 47 | #include <qdatetime.h> |
36 | #include <qpushbutton.h> | 48 | #include <qpushbutton.h> |
37 | #include <qlineedit.h> | 49 | #include <qlineedit.h> |
38 | #include <qmessagebox.h> | 50 | #include <qmessagebox.h> |
51 | #include <qobjectlist.h> | ||
39 | #include <qregexp.h> | 52 | #include <qregexp.h> |
40 | #include <qspinbox.h> | 53 | #include <qspinbox.h> |
41 | #include <qtoolbutton.h> | 54 | #include <qtoolbutton.h> |
42 | #include <qmainwindow.h> | 55 | #include <qmainwindow.h> |
43 | 56 | ||
44 | // Standard | 57 | // Standard |
45 | 58 | ||
46 | #include <assert.h> | 59 | #include <assert.h> |
47 | #include <errno.h> | 60 | #include <errno.h> |
48 | #include <unistd.h> | 61 | #include <unistd.h> |
49 | #include <string.h> | 62 | #include <string.h> |
50 | #include <sys/types.h> | 63 | #include <sys/types.h> |
51 | #include <stdlib.h> | 64 | #include <stdlib.h> |
52 | 65 | ||
53 | // Local | ||
54 | |||
55 | #include "wellenreiter.h" | ||
56 | #include "scanlist.h" | ||
57 | #include "logwindow.h" | ||
58 | #include "hexwindow.h" | ||
59 | #include "configwindow.h" | ||
60 | #include "statwindow.h" | ||
61 | #include "graphwindow.h" | ||
62 | #include "manufacturers.h" | ||
63 | |||
64 | Wellenreiter::Wellenreiter( QWidget* parent ) | 66 | Wellenreiter::Wellenreiter( QWidget* parent ) |
65 | : WellenreiterBase( parent, 0, 0 ), | 67 | : WellenreiterBase( parent, 0, 0 ), |
66 | sniffing( false ), iface( 0 ), manufacturerdb( 0 ), configwindow( 0 ) | 68 | sniffing( false ), iface( 0 ), manufacturerdb( 0 ), configwindow( 0 ) |
67 | { | 69 | { |
68 | 70 | ||
69 | // | 71 | // |
70 | // construct manufacturer database | 72 | // construct manufacturer database |
71 | // | 73 | // |
@@ -132,16 +134,40 @@ void Wellenreiter::channelHopped(int c) | |||
132 | } | 134 | } |
133 | title.append( "]" ); | 135 | title.append( "]" ); |
134 | //title.append( QString().sprintf( " %02d", c ) ); | 136 | //title.append( QString().sprintf( " %02d", c ) ); |
135 | assert( parent() ); | 137 | assert( parent() ); |
136 | ( (QMainWindow*) parent() )->setCaption( title ); | 138 | ( (QMainWindow*) parent() )->setCaption( title ); |
137 | } | 139 | } |
138 | 140 | ||
139 | 141 | ||
142 | void Wellenreiter::handleNotification( OPacket* p ) | ||
143 | { | ||
144 | QObjectList* l = p->queryList(); | ||
145 | QObjectListIt it( *l ); | ||
146 | QObject* o; | ||
147 | |||
148 | while ( (o = it.current()) != 0 ) | ||
149 | { | ||
150 | QString name = it.current()->name(); | ||
151 | if ( configwindow->parsePackets->isProtocolChecked( name ) ) | ||
152 | { | ||
153 | QString action = configwindow->parsePackets->protocolAction( name ); | ||
154 | qDebug( "action for '%s' seems to be '%s'", (const char*) name, (const char*) action ); | ||
155 | doAction( action, name, p ); | ||
156 | } | ||
157 | else | ||
158 | { | ||
159 | qDebug( "protocol '%s' not checked.", (const char*) name ); | ||
160 | } | ||
161 | ++it; | ||
162 | } | ||
163 | } | ||
164 | |||
165 | |||
140 | void Wellenreiter::handleBeacon( OPacket* p, OWaveLanManagementPacket* beacon ) | 166 | void Wellenreiter::handleBeacon( OPacket* p, OWaveLanManagementPacket* beacon ) |
141 | { | 167 | { |
142 | QString type; | 168 | QString type; |
143 | if ( beacon->canIBSS() ) | 169 | if ( beacon->canIBSS() ) |
144 | { | 170 | { |
145 | type = "adhoc"; | 171 | type = "adhoc"; |
146 | } | 172 | } |
147 | else if ( beacon->canESS() ) | 173 | else if ( beacon->canESS() ) |
@@ -240,20 +266,28 @@ void Wellenreiter::handleData( OPacket* p, OWaveLanDataPacket* data ) | |||
240 | OIPPacket* ip = (OIPPacket*) p->child( "IP" ); | 266 | OIPPacket* ip = (OIPPacket*) p->child( "IP" ); |
241 | if ( ip ) | 267 | if ( ip ) |
242 | { | 268 | { |
243 | qDebug( "Received IP packet." ); | 269 | qDebug( "Received IP packet." ); |
244 | } | 270 | } |
245 | } | 271 | } |
246 | 272 | ||
247 | 273 | ||
274 | QObject* childIfToParse( OPacket* p, const QString& protocol ) | ||
275 | { | ||
276 | //FIXME: Implement | ||
277 | } | ||
278 | |||
279 | |||
248 | void Wellenreiter::receivePacket( OPacket* p ) | 280 | void Wellenreiter::receivePacket( OPacket* p ) |
249 | { | 281 | { |
250 | hexWindow()->log( p->dump( 8 ) ); | 282 | hexWindow()->log( p->dump( 8 ) ); |
251 | 283 | ||
284 | handleNotification( p ); | ||
285 | |||
252 | // check if we received a beacon frame | 286 | // check if we received a beacon frame |
253 | OWaveLanManagementPacket* beacon = static_cast<OWaveLanManagementPacket*>( p->child( "802.11 Management" ) ); | 287 | OWaveLanManagementPacket* beacon = static_cast<OWaveLanManagementPacket*>( p->child( "802.11 Management" ) ); |
254 | if ( beacon && beacon->managementType() == "Beacon" ) | 288 | if ( beacon && beacon->managementType() == "Beacon" ) |
255 | { | 289 | { |
256 | handleBeacon( p, beacon ); | 290 | handleBeacon( p, beacon ); |
257 | return; | 291 | return; |
258 | } | 292 | } |
259 | 293 | ||
@@ -426,8 +460,27 @@ void Wellenreiter::timerEvent( QTimerEvent* ) | |||
426 | } | 460 | } |
427 | else | 461 | else |
428 | { | 462 | { |
429 | receivePacket( p ); | 463 | receivePacket( p ); |
430 | delete p; | 464 | delete p; |
431 | } | 465 | } |
432 | } | 466 | } |
433 | 467 | ||
468 | |||
469 | void Wellenreiter::doAction( const QString& action, const QString& protocol, OPacket* p ) | ||
470 | { | ||
471 | if ( action == "TouchSound" ) | ||
472 | ODevice::inst()->touchSound(); | ||
473 | else if ( action == "AlarmSound" ) | ||
474 | ODevice::inst()->alarmSound(); | ||
475 | else if ( action == "KeySound" ) | ||
476 | ODevice::inst()->keySound(); | ||
477 | else if ( action == "LedOn" ) | ||
478 | ODevice::inst()->setLedState( Led_Mail, Led_On ); | ||
479 | else if ( action == "LedOff" ) | ||
480 | ODevice::inst()->setLedState( Led_Mail, Led_Off ); | ||
481 | else if ( action == "LogMessage" ) | ||
482 | logwindow->log( QString().sprintf( "Got packet with protocol '%s'", (const char*) protocol ) ); | ||
483 | else if ( action == "MessageBox" ) | ||
484 | QMessageBox::information ( this, "Notification!", | ||
485 | QString().sprintf( "Got packet with protocol '%s'", (const char*) protocol ) ); | ||
486 | } | ||
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.h b/noncore/net/wellenreiter/gui/wellenreiter.h index ea8a692..e227a24 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.h +++ b/noncore/net/wellenreiter/gui/wellenreiter.h | |||
@@ -61,16 +61,19 @@ class Wellenreiter : public WellenreiterBase { | |||
61 | 61 | ||
62 | signals: | 62 | signals: |
63 | void startedSniffing(); | 63 | void startedSniffing(); |
64 | void stoppedSniffing(); | 64 | void stoppedSniffing(); |
65 | 65 | ||
66 | private: | 66 | private: |
67 | void handleBeacon( OPacket* p, OWaveLanManagementPacket* beacon ); | 67 | void handleBeacon( OPacket* p, OWaveLanManagementPacket* beacon ); |
68 | void handleData( OPacket* p, OWaveLanDataPacket* data ); | 68 | void handleData( OPacket* p, OWaveLanDataPacket* data ); |
69 | void handleNotification( OPacket* p ); | ||
70 | void doAction( const QString& action, const QString& protocol, OPacket* p ); | ||
71 | QObject* childIfToParse( OPacket* p, const QString& protocol ); | ||
69 | 72 | ||
70 | private: | 73 | private: |
71 | #ifdef QWS | 74 | #ifdef QWS |
72 | OSystem _system; // Opie Operating System identifier | 75 | OSystem _system; // Opie Operating System identifier |
73 | #endif | 76 | #endif |
74 | 77 | ||
75 | OWirelessNetworkInterface* iface; | 78 | OWirelessNetworkInterface* iface; |
76 | OPacketCapturer* pcap; | 79 | OPacketCapturer* pcap; |