summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2002-12-28 18:57:11 (UTC)
committer mickeyl <mickeyl>2002-12-28 18:57:11 (UTC)
commitf70916f3ab05917a3d0dda64beb8db5ac16448ab (patch) (unidiff)
treebd138c1a901de7ea49b012b32e48d3f4b8b073f8
parent1362726346f1ab497ad5822db1a9b284f5bdaa1a (diff)
downloadopie-f70916f3ab05917a3d0dda64beb8db5ac16448ab.zip
opie-f70916f3ab05917a3d0dda64beb8db5ac16448ab.tar.gz
opie-f70916f3ab05917a3d0dda64beb8db5ac16448ab.tar.bz2
- refactored a number of classes
- removed dumb polling ==> QSocketNotifier rocks - switched to parsing the daemon stuff in the gui, since libwellenreiter still has problems.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/cardconfig.cpp29
-rw-r--r--noncore/net/wellenreiter/gui/cardconfig.h58
-rw-r--r--noncore/net/wellenreiter/gui/configbase.ui10
-rw-r--r--noncore/net/wellenreiter/gui/gui-x11.pro6
-rw-r--r--noncore/net/wellenreiter/gui/gui.pro6
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.cpp100
-rw-r--r--noncore/net/wellenreiter/gui/scanlist.h11
-rw-r--r--noncore/net/wellenreiter/gui/scanlistitem.cpp1
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp213
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.h18
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiterbase.cpp8
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiterbase.h13
-rw-r--r--noncore/net/wellenreiter/gui/wlan.cpp57
-rw-r--r--noncore/net/wellenreiter/gui/wlan.h38
14 files changed, 403 insertions, 165 deletions
diff --git a/noncore/net/wellenreiter/gui/cardconfig.cpp b/noncore/net/wellenreiter/gui/cardconfig.cpp
new file mode 100644
index 0000000..1ca1d27
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/cardconfig.cpp
@@ -0,0 +1,29 @@
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 "cardconfig.h"
17
18#include <qstring.h>
19
20CardConfig::CardConfig( const QString& interface, Type type, int hopinterval )
21 :_interface( interface ), _type( type ), _hopinterval( hopinterval )
22{
23
24}
25
26CardConfig::~CardConfig()
27{
28}
29
diff --git a/noncore/net/wellenreiter/gui/cardconfig.h b/noncore/net/wellenreiter/gui/cardconfig.h
new file mode 100644
index 0000000..f54ebac
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/cardconfig.h
@@ -0,0 +1,58 @@
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 CARDCONFIG_H
17#define CARDCONFIG_H
18
19#include <qstring.h>
20
21#ifdef QWS
22#include <opie/odevice.h>
23using namespace Opie;
24#endif
25
26class CardConfig
27{
28 public:
29
30 typedef enum { Prism, Orinoco, HostAP, Manual } Type;
31
32 public:
33
34 CardConfig( const QString& interface, Type type = Manual, int hopinterval = 100 );
35 virtual ~CardConfig();
36
37 const QString& interface() { return _interface; };
38 int hopinterval() { return _hopinterval; };
39 Type type() { return _type; };
40
41 #ifdef QWS
42 OSystem system() { return _system; };
43 #endif
44
45 private:
46
47 QString _interface;
48 Type _type;
49 int _hopinterval;
50
51 #ifdef QWS
52 OSystem _system;
53 #endif
54
55};
56
57#endif
58
diff --git a/noncore/net/wellenreiter/gui/configbase.ui b/noncore/net/wellenreiter/gui/configbase.ui
index e2f734a..8dcf513 100644
--- a/noncore/net/wellenreiter/gui/configbase.ui
+++ b/noncore/net/wellenreiter/gui/configbase.ui
@@ -11,7 +11,7 @@
11 <rect> 11 <rect>
12 <x>0</x> 12 <x>0</x>
13 <y>0</y> 13 <y>0</y>
14 <width>232</width> 14 <width>228</width>
15 <height>267</height> 15 <height>267</height>
16 </rect> 16 </rect>
17 </property> 17 </property>
@@ -32,7 +32,7 @@
32 </property> 32 </property>
33 <property stdset="1"> 33 <property stdset="1">
34 <name>spacing</name> 34 <name>spacing</name>
35 <number>0</number> 35 <number>1</number>
36 </property> 36 </property>
37 <widget> 37 <widget>
38 <class>QLayoutWidget</class> 38 <class>QLayoutWidget</class>
@@ -180,12 +180,6 @@
180 <item> 180 <item>
181 <property> 181 <property>
182 <name>text</name> 182 <name>text</name>
183 <string>cisco</string>
184 </property>
185 </item>
186 <item>
187 <property>
188 <name>text</name>
189 <string>orinoco</string> 183 <string>orinoco</string>
190 </property> 184 </property>
191 </item> 185 </item>
diff --git a/noncore/net/wellenreiter/gui/gui-x11.pro b/noncore/net/wellenreiter/gui/gui-x11.pro
index 6b4a7bf..523bf15 100644
--- a/noncore/net/wellenreiter/gui/gui-x11.pro
+++ b/noncore/net/wellenreiter/gui/gui-x11.pro
@@ -2,10 +2,10 @@ DESTDIR = .
2TEMPLATE = app 2TEMPLATE = app
3CONFIG = qt warn_on debug 3CONFIG = qt warn_on debug
4#CONFIG = qt warn_on release 4#CONFIG = qt warn_on release
5HEADERS = wellenreiterbase.h wellenreiter.h scanlistitem.h scanlist.h logwindow.h hexwindow.h configwindow.h resource.h 5HEADERS = wellenreiterbase.h wellenreiter.h scanlistitem.h scanlist.h logwindow.h hexwindow.h configwindow.h resource.h wlan.h cardconfig.h
6SOURCES = main.cpp wellenreiterbase.cpp wellenreiter.cpp scanlistitem.cpp scanlist.cpp logwindow.cpp hexwindow.cpp configwindow.cpp resource.cpp 6SOURCES = main.cpp wellenreiterbase.cpp wellenreiter.cpp scanlistitem.cpp scanlist.cpp logwindow.cpp hexwindow.cpp configwindow.cpp resource.cpp wlan.cpp cardconfig.cpp
7INCLUDEPATH += ../ 7INCLUDEPATH += ../
8DEPENDPATH += ../ 8DEPENDPATH += ../
9LIBS += -lwellenreiter 9LIBS += -L. -lwellenreiter
10INTERFACES = configbase.ui 10INTERFACES = configbase.ui
11TARGET = wellenreiter 11TARGET = wellenreiter
diff --git a/noncore/net/wellenreiter/gui/gui.pro b/noncore/net/wellenreiter/gui/gui.pro
index b6e884d..ce1c387 100644
--- a/noncore/net/wellenreiter/gui/gui.pro
+++ b/noncore/net/wellenreiter/gui/gui.pro
@@ -2,10 +2,10 @@ DESTDIR = $(OPIEDIR)/bin
2TEMPLATE = app 2TEMPLATE = app
3CONFIG = qt warn_on debug 3CONFIG = qt warn_on debug
4#CONFIG = qt warn_on release 4#CONFIG = qt warn_on release
5HEADERS = wellenreiterbase.h wellenreiter.h scanlistitem.h scanlist.h logwindow.h hexwindow.h configwindow.h 5HEADERS = wellenreiterbase.h wellenreiter.h scanlistitem.h scanlist.h logwindow.h hexwindow.h configwindow.h wlan.h cardconfig.h
6SOURCES = main.cpp wellenreiterbase.cpp wellenreiter.cpp scanlistitem.cpp scanlist.cpp logwindow.cpp hexwindow.cpp configwindow.cpp 6SOURCES = main.cpp wellenreiterbase.cpp wellenreiter.cpp scanlistitem.cpp scanlist.cpp logwindow.cpp hexwindow.cpp configwindow.cpp wlan.cpp cardconfig.cpp
7INCLUDEPATH += $(OPIEDIR)/include ../ 7INCLUDEPATH += $(OPIEDIR)/include ../
8DEPENDPATH += $(OPIEDIR)/include ../ 8DEPENDPATH += $(OPIEDIR)/include ../
9LIBS += -lqpe -lopie -lwellenreiter 9LIBS += -lqpe -lopie -L. -lwellenreiter
10INTERFACES = configbase.ui 10INTERFACES = configbase.ui
11TARGET = wellenreiter 11TARGET = wellenreiter
diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp
index f907afc..6d032aa 100644
--- a/noncore/net/wellenreiter/gui/scanlist.cpp
+++ b/noncore/net/wellenreiter/gui/scanlist.cpp
@@ -14,4 +14,104 @@
14**********************************************************************/ 14**********************************************************************/
15 15
16#include "scanlist.h" 16#include "scanlist.h"
17#include "scanlistitem.h"
18
19#include <assert.h>
20
21MScanListView::MScanListView( QWidget* parent, const char* name )
22 :QListView( parent, name )
23{
24};
25
26MScanListView::~MScanListView()
27{
28};
29
30void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
31{
32 // FIXME: scanlistitem needs a proper encapsulation and not such a damn dealing with text(...)
33
34 qDebug( "MScanList::addNewItem( %s / %s / %s [%d]",
35 (const char*) type,
36 (const char*) essid,
37 (const char*) macaddr,
38 channel );
39
40 // search, if we already have seen this net
41
42 QString s;
43 MScanListItem* network;
44 MScanListItem* item = static_cast<MScanListItem*> ( firstChild() );
45
46 while ( item && ( item->text( 0 ) != essid ) )
47 {
48 qDebug( "itemtext: %s", (const char*) item->text( 0 ) );
49 item = static_cast<MScanListItem*> ( item->itemBelow() );
50 }
51 if ( item )
52 {
53 // animate the item
54
55 /*
56
57 const QPixmap* pixmap = item->pixmap( 0 );
58 const QPixmap* nextpixmap = ani2;
59 if ( pixmap == ani1 )
60 nextpixmap = ani2;
61 else if ( pixmap == ani2 )
62 nextpixmap = ani3;
63 else if ( pixmap == ani3 )
64 nextpixmap = ani4;
65 else if ( pixmap == ani4 )
66 nextpixmap = ani1;
67 item->setPixmap( 0, *nextpixmap ); */
68
69 //qDebug( "current pixmap %d, next %d", pixmap, nextpixmap );
70
71 // we have already seen this net, check all childs if MAC exists
72
73 network = item;
74
75 item = static_cast<MScanListItem*> ( item->firstChild() );
76 assert( item ); // this shouldn't fail
77
78 while ( item && ( item->text( 2 ) != macaddr ) )
79 {
80 qDebug( "subitemtext: %s", (const char*) item->text( 2 ) );
81 item = static_cast<MScanListItem*> ( item->itemBelow() );
82 }
83
84 if ( item )
85 {
86 // we have already seen this item, it's a dupe
87 qDebug( "%s is a dupe - ignoring...", (const char*) macaddr );
88 return;
89 }
90 }
91 else
92 {
93 s.sprintf( "(i) new network: '%s'", (const char*) essid );
94
95 network = new MScanListItem( this, "networks", essid, QString::null, 0, 0, 0 );
96 }
97
98
99 // insert new station as child from network
100
101 // no essid to reduce clutter, maybe later we have a nick or stationname to display!?
102
103 qDebug( "inserting new station %s", (const char*) macaddr );
104
105 new MScanListItem( network, type, "", macaddr, wep, channel, signal );
106
107 if ( type == "managed" )
108 {
109 s.sprintf( "(i) new AP in '%s' [%d]", (const char*) essid, channel );
110 }
111 else
112 {
113 s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel );
114 }
115
116}
17 117
diff --git a/noncore/net/wellenreiter/gui/scanlist.h b/noncore/net/wellenreiter/gui/scanlist.h
index 5cf3053..6fe6930 100644
--- a/noncore/net/wellenreiter/gui/scanlist.h
+++ b/noncore/net/wellenreiter/gui/scanlist.h
@@ -20,8 +20,17 @@
20 20
21class QString; 21class QString;
22 22
23class MScanList: public QListView 23class MScanListView: public QListView
24{ 24{
25 Q_OBJECT
26
27 public:
28 MScanListView( QWidget* parent = 0, const char* name = 0 );
29 virtual ~MScanListView();
30
31 public slots:
32 void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
33
25}; 34};
26 35
27#endif 36#endif
diff --git a/noncore/net/wellenreiter/gui/scanlistitem.cpp b/noncore/net/wellenreiter/gui/scanlistitem.cpp
index 1e2a52e..f4b43a6 100644
--- a/noncore/net/wellenreiter/gui/scanlistitem.cpp
+++ b/noncore/net/wellenreiter/gui/scanlistitem.cpp
@@ -76,3 +76,4 @@ void MScanListItem::decorateItem( QString type, QString essid, QString macaddr,
76 this->type = type; 76 this->type = type;
77 77
78} 78}
79
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 0fd929f..2d9bbee 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -19,6 +19,7 @@
19#include <qmessagebox.h> 19#include <qmessagebox.h>
20#include <qcombobox.h> 20#include <qcombobox.h>
21#include <qspinbox.h> 21#include <qspinbox.h>
22#include <qsocketnotifier.h>
22 23
23// Qtopia 24// Qtopia
24 25
@@ -26,6 +27,13 @@
26#include <qpe/global.h> 27#include <qpe/global.h>
27#endif 28#endif
28 29
30// Opie
31
32#ifdef QWS
33#include <opie/odevice.h>
34using namespace Opie;
35#endif
36
29// Standard 37// Standard
30 38
31#include <assert.h> 39#include <assert.h>
@@ -33,12 +41,14 @@
33#include <unistd.h> 41#include <unistd.h>
34#include <string.h> 42#include <string.h>
35#include <sys/types.h> 43#include <sys/types.h>
44#include <sys/socket.h>
36#include <stdlib.h> 45#include <stdlib.h>
46#include <fcntl.h>
37 47
38// Local 48// Local
39 49
40#include "wellenreiter.h" 50#include "wellenreiter.h"
41#include "scanlistitem.h" 51#include "scanlist.h"
42#include "logwindow.h" 52#include "logwindow.h"
43#include "hexwindow.h" 53#include "hexwindow.h"
44#include "configwindow.h" 54#include "configwindow.h"
@@ -53,22 +63,41 @@ Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl )
53 63
54 logwindow->log( "(i) Wellenreiter has been started." ); 64 logwindow->log( "(i) Wellenreiter has been started." );
55 65
56 connect( button, SIGNAL( clicked() ), this, SLOT( buttonClicked() ) );
57 netview->setColumnWidthMode( 1, QListView::Manual );
58
59 // 66 //
60 // setup socket for daemon communication and start poller 67 // detect operating system
68 //
69
70 #ifdef QWS
71 QString sys;
72 sys.sprintf( "(i) Running on '%s'.", (const char*) ODevice::inst()->systemString() );
73 _system = ODevice::inst()->system();
74 logwindow->log( sys );
75 #endif
76
77 //
78 // setup socket for daemon communication, register socket notifier
61 // 79 //
62 80
63 daemon_fd = wl_setupsock( GUIADDR, GUIPORT ); 81 daemon_fd = wl_setupsock( GUIADDR, GUIPORT );
64 if ( daemon_fd == -1 ) 82 if ( daemon_fd == -1 )
65 { 83 {
66 logwindow->log( "(E) Couldn't get file descriptor for commsocket." ); 84 logwindow->log( "(E) Couldn't get file descriptor for commsocket." );
67 qDebug( "D'oh! Could not get file descriptor for daemon-->gui communication socket." );
68 } 85 }
69 else 86 else
70 startTimer( 700 ); 87 {
88 int flags;
89 flags = fcntl( daemon_fd, F_GETFL, 0 );
90 fcntl( daemon_fd, F_SETFL, flags | O_NONBLOCK );
91 QSocketNotifier *sn = new QSocketNotifier( daemon_fd, QSocketNotifier::Read, parent );
92 connect( sn, SIGNAL( activated( int ) ), this, SLOT( dataReceived() ) );
93 }
71 94
95 // setup GUI
96
97 connect( button, SIGNAL( clicked() ), this, SLOT( buttonClicked() ) );
98 button->setEnabled( false );
99 netview->setColumnWidthMode( 1, QListView::Manual );
100
72} 101}
73 102
74Wellenreiter::~Wellenreiter() 103Wellenreiter::~Wellenreiter()
@@ -82,11 +111,26 @@ void Wellenreiter::handleMessage()
82 111
83 qDebug( "received message from daemon." ); 112 qDebug( "received message from daemon." );
84 113
85 char buffer[128]; 114 char buffer[10000];
86 115 memset( &buffer, 0, sizeof( buffer ) );
87 int result = wl_recv( &daemon_fd, (char*) &buffer, sizeof(buffer) );
88 qDebug( "received %d from recvcomm", result );
89 116
117 // int result = #wl_recv( &daemon_fd, (char*) &buffer, sizeof(buffer) );
118
119 struct sockaddr from;
120 socklen_t len;
121
122 int result = recvfrom( daemon_fd, &buffer, 8192, MSG_WAITALL, &from, &len );
123
124 qDebug( "received %d from recv [%d bytes]", result, len );
125
126 if ( result == -1 )
127 {
128 qDebug( "Warning: %s", strerror( errno ) );
129 return;
130 }
131
132 int command = buffer[1] - 48;
133
90/* 134/*
91typedef struct { 135typedef struct {
92 int net_type; 1 = Accesspoint ; 2 = Ad-Hoc 136 int net_type; 1 = Accesspoint ; 2 = Ad-Hoc
@@ -98,10 +142,11 @@ typedef struct {
98} wl_network_t; 142} wl_network_t;
99*/ 143*/
100 144
101 // qDebug( "Sniffer sent: '%s'", (const char*) buffer ); 145 qDebug( "Recv result: %d", ( result ) );
146 qDebug( "Sniffer sent: '%s'", (const char*) buffer );
102 hexwindow->log( (const char*) &buffer ); 147 hexwindow->log( (const char*) &buffer );
103 148
104 if ( result == NETFOUND ) /* new network found */ 149 if ( command == NETFOUND ) /* new network found */
105 { 150 {
106 qDebug( "Sniffer said: new network found." ); 151 qDebug( "Sniffer said: new network found." );
107 wl_network_t n; 152 wl_network_t n;
@@ -119,7 +164,7 @@ typedef struct {
119 else 164 else
120 type = "adhoc"; 165 type = "adhoc";
121 166
122 addNewItem( type, n.bssid, QString( (const char*) &n.mac ), n.wep, n.channel, 0 ); 167 netview->addNewItem( type, n.bssid, QString( (const char*) &n.mac ), n.wep, n.channel, 0 );
123 168
124 } 169 }
125 170
@@ -131,125 +176,28 @@ typedef struct {
131 176
132} 177}
133 178
134 179void Wellenreiter::dataReceived()
135bool Wellenreiter::hasMessage()
136{ 180{
137 181 logwindow->log( "(d) Received data from daemon" );
138 // FIXME: do this in libwellenreiter, not here!!! 182 handleMessage();
139
140 fd_set rfds;
141 FD_ZERO( &rfds );
142 FD_SET( daemon_fd, &rfds );
143 struct timeval tv;
144 tv.tv_sec = 0;
145 tv.tv_usec = 10;
146 int result = select( daemon_fd+1, &rfds, NULL, NULL, &tv );
147
148 if ( result == 0 )
149 {
150 return false;
151 }
152 else if ( result == -1 )
153 {
154 qDebug( "selected returned: %s", strerror( errno ) );
155 return false;
156 }
157 else
158 return true; //FD_ISSET( daemon_fd, &rfds ); gibbet 'eh nur einen Deskriptor
159} 183}
160 184
161void Wellenreiter::timerEvent( QTimerEvent* e ) 185void Wellenreiter::buttonClicked()
162{
163 //qDebug( "checking for message..." );
164 if ( hasMessage() )
165 {
166 //qDebug( "got message from daemon" );
167 handleMessage();
168 }
169 else
170 {
171 //qDebug( "no message..." );
172 }
173}
174
175void Wellenreiter::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
176{ 186{
177 // FIXME: this code belongs in customized QListView, not into this class 187 /*
178 // FIXME: scanlistitem needs a proper encapsulation and not such a damn dealing with text(...) 188 // add some test stations, so that we can see if the GUI part works
179 189 addNewItem( "managed", "Vanille", "04:00:20:EF:A6:43", true, 6, 80 );
180 qDebug( "Wellenreiter::addNewItem( %s / %s / %s [%d]", 190 addNewItem( "managed", "Vanille", "04:00:20:EF:A6:23", true, 11, 10 );
181 (const char*) type, 191 addNewItem( "adhoc", "ELAN", "40:03:43:E7:16:22", false, 3, 10 );
182 (const char*) essid, 192 addNewItem( "adhoc", "ELAN", "40:03:53:E7:56:62", false, 3, 15 );
183 (const char*) macaddr, 193 addNewItem( "adhoc", "ELAN", "40:03:63:E7:56:E2", false, 3, 20 );
184 channel ); 194 */
185
186 // search, if we already have seen this net
187
188 QString s;
189 MScanListItem* network;
190 MScanListItem* item = static_cast<MScanListItem*> ( netview->firstChild() );
191
192 while ( item && ( item->text( 0 ) != essid ) )
193 {
194 qDebug( "itemtext: %s", (const char*) item->text( 0 ) );
195 item = static_cast<MScanListItem*> ( item->itemBelow() );
196 }
197 if ( item )
198 {
199 // we have already seen this net, check all childs if MAC exists
200
201 network = item;
202
203 item = static_cast<MScanListItem*> ( item->firstChild() );
204 assert( item ); // this shouldn't fail
205
206 while ( item && ( item->text( 2 ) != macaddr ) )
207 {
208 qDebug( "subitemtext: %s", (const char*) item->text( 2 ) );
209 item = static_cast<MScanListItem*> ( item->itemBelow() );
210 }
211
212 if ( item )
213 {
214 // we have already seen this item, it's a dupe
215 qDebug( "%s is a dupe - ignoring...", (const char*) macaddr );
216 return;
217 }
218 }
219 else
220 {
221 s.sprintf( "(i) new network: '%s'", (const char*) essid );
222 logwindow->log( s );
223
224 network = new MScanListItem( netview, "networks", essid, QString::null, 0, 0, 0 );
225 }
226
227
228 // insert new station as child from network
229
230 // no essid to reduce clutter, maybe later we have a nick or stationname to display!?
231
232 qDebug( "inserting new station %s", (const char*) macaddr );
233
234 new MScanListItem( network, type, "", macaddr, wep, channel, signal );
235
236 if ( type == "managed" )
237 {
238 s.sprintf( "(i) new AP in '%s' [%d]", (const char*) essid, channel );
239 }
240 else
241 {
242 s.sprintf( "(i) new adhoc station in '%s' [%d]", (const char*) essid, channel );
243 }
244
245 logwindow->log( s );
246 195
247}
248 196
249void Wellenreiter::buttonClicked()
250{
251 if ( daemonRunning ) 197 if ( daemonRunning )
252 { 198 {
199 daemonRunning = false;
200
253 logwindow->log( "(i) Daemon has been stopped." ); 201 logwindow->log( "(i) Daemon has been stopped." );
254 button->setText( "Start Scanning" ); 202 button->setText( "Start Scanning" );
255 203
@@ -316,20 +264,5 @@ void Wellenreiter::buttonClicked()
316 system( cmdline ); 264 system( cmdline );
317 qDebug( "done" ); 265 qDebug( "done" );
318 266
319 /*
320
321 // add some test stations, so that we can see if the GUI part works
322
323 addNewItem( "managed", "Vanille", "04:00:20:EF:A6:43", true, 6, 80 );
324 addNewItem( "managed", "Vanille", "04:00:20:EF:A6:23", true, 11, 10 );
325 addNewItem( "adhoc", "ELAN", "40:03:43:E7:16:22", false, 3, 10 );
326 addNewItem( "adhoc", "ELAN", "40:03:53:E7:56:62", false, 3, 15 );
327 addNewItem( "adhoc", "ELAN", "40:03:63:E7:56:E2", false, 3, 20 );
328
329 QString command ("98");
330
331 //sendcomm( DAEMONADDR, DAEMONPORT, (const char*) command );
332
333 */
334 } 267 }
335} 268}
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.h b/noncore/net/wellenreiter/gui/wellenreiter.h
index 052a242..2296892 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.h
+++ b/noncore/net/wellenreiter/gui/wellenreiter.h
@@ -18,7 +18,13 @@
18 18
19#include "wellenreiterbase.h" 19#include "wellenreiterbase.h"
20 20
21#ifdef QWS
22#include <opie/odevice.h>
23using namespace Opie;
24#endif
25
21class QTimerEvent; 26class QTimerEvent;
27class QPixmap;
22 28
23class Wellenreiter : public WellenreiterBase { 29class Wellenreiter : public WellenreiterBase {
24 Q_OBJECT 30 Q_OBJECT
@@ -29,20 +35,20 @@ public:
29 ~Wellenreiter(); 35 ~Wellenreiter();
30 36
31protected: 37protected:
32 virtual void timerEvent( QTimerEvent* );
33 38
34 bool daemonRunning; 39 bool daemonRunning;
35 40
36public slots: 41public slots:
37 void buttonClicked(); 42 void buttonClicked();
38 void addNewItem( QString type, QString essid, QString ap, bool wep, int channel, int signal ); 43 void dataReceived();
39 44
40private: 45private:
41 int daemon_fd; // socket filedescriptor for udp communication socket 46 int daemon_fd; // socket filedescriptor for udp communication socket
42 47 #ifdef QWS
43 bool hasMessage(); 48 OSystem _system; // Opie Operating System identifier
49 #endif
44 void handleMessage(); 50 void handleMessage();
45 51
46 //void readConfig(); 52 //void readConfig();
47 //void writeConfig(); 53 //void writeConfig();
48}; 54};
diff --git a/noncore/net/wellenreiter/gui/wellenreiterbase.cpp b/noncore/net/wellenreiter/gui/wellenreiterbase.cpp
index 5017b08..d6b9891 100644
--- a/noncore/net/wellenreiter/gui/wellenreiterbase.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiterbase.cpp
@@ -30,6 +30,7 @@
30#include "logwindow.h" 30#include "logwindow.h"
31#include "hexwindow.h" 31#include "hexwindow.h"
32#include "configwindow.h" 32#include "configwindow.h"
33#include "scanlist.h"
33 34
34#ifdef QWS 35#ifdef QWS
35#include <qpe/resource.h> 36#include <qpe/resource.h>
@@ -47,6 +48,11 @@
47WellenreiterBase::WellenreiterBase( QWidget* parent, const char* name, WFlags fl ) 48WellenreiterBase::WellenreiterBase( QWidget* parent, const char* name, WFlags fl )
48 : QWidget( parent, name, fl ) 49 : QWidget( parent, name, fl )
49{ 50{
51 ani1 = new QPixmap( Resource::loadPixmap( "wellenreiter/networks_rot0" ) );
52 ani2 = new QPixmap( Resource::loadPixmap( "wellenreiter/networks_rot90" ) );
53 ani3 = new QPixmap( Resource::loadPixmap( "wellenreiter/networks_rot180" ) );
54 ani4 = new QPixmap( Resource::loadPixmap( "wellenreiter/networks_rot270" ) );
55
50 if ( !name ) 56 if ( !name )
51 setName( "WellenreiterBase" ); 57 setName( "WellenreiterBase" );
52 resize( 191, 294 ); 58 resize( 191, 294 );
@@ -66,7 +72,7 @@ WellenreiterBase::WellenreiterBase( QWidget* parent, const char* name, WFlags f
66 72
67 //--------- NETVIEW TAB -------------- 73 //--------- NETVIEW TAB --------------
68 74
69 netview = new QListView( ap, "netview" ); 75 netview = new MScanListView( ap );
70 netview->addColumn( tr( "SSID" ) ); 76 netview->addColumn( tr( "SSID" ) );
71 netview->setColumnAlignment( 0, AlignLeft || AlignVCenter ); 77 netview->setColumnAlignment( 0, AlignLeft || AlignVCenter );
72 netview->addColumn( tr( "Sig" ) ); 78 netview->addColumn( tr( "Sig" ) );
diff --git a/noncore/net/wellenreiter/gui/wellenreiterbase.h b/noncore/net/wellenreiter/gui/wellenreiterbase.h
index fce25d1..edb2930 100644
--- a/noncore/net/wellenreiter/gui/wellenreiterbase.h
+++ b/noncore/net/wellenreiter/gui/wellenreiterbase.h
@@ -22,8 +22,8 @@ class QVBoxLayout;
22class QHBoxLayout; 22class QHBoxLayout;
23class QGridLayout; 23class QGridLayout;
24class QLabel; 24class QLabel;
25class QListView; 25class MScanListView;
26class QListViewItem; 26class MScanListItem;
27class QPushButton; 27class QPushButton;
28class MLogWindow; 28class MLogWindow;
29class MHexWindow; 29class MHexWindow;
@@ -49,7 +49,7 @@ public:
49 QTabWidget* TabWidget; 49 QTabWidget* TabWidget;
50#endif 50#endif
51 QWidget* ap; 51 QWidget* ap;
52 QListView* netview; 52 MScanListView* netview;
53 MLogWindow* logwindow; 53 MLogWindow* logwindow;
54 MHexWindow* hexwindow; 54 MHexWindow* hexwindow;
55 WellenreiterConfigWindow* configwindow; 55 WellenreiterConfigWindow* configwindow;
@@ -63,6 +63,13 @@ protected:
63 QVBoxLayout* apLayout; 63 QVBoxLayout* apLayout;
64 QGridLayout* aboutLayout; 64 QGridLayout* aboutLayout;
65 bool event( QEvent* ); 65 bool event( QEvent* );
66
67 QPixmap* ani1;
68 QPixmap* ani2;
69 QPixmap* ani3;
70 QPixmap* ani4;
71
72
66}; 73};
67 74
68#endif // WELLENREITERBASE_H 75#endif // WELLENREITERBASE_H
diff --git a/noncore/net/wellenreiter/gui/wlan.cpp b/noncore/net/wellenreiter/gui/wlan.cpp
new file mode 100644
index 0000000..b046cc8
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/wlan.cpp
@@ -0,0 +1,57 @@
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 "wlan.h"
17#include "cardconfig.h"
18
19// Qt
20#include <qstring.h>
21
22// Qtopia
23#ifdef QWS
24#include <opie/odevice.h>
25using namespace Opie;
26#endif
27
28WLAN::WLAN( const QString& interface )
29{
30 _configuration = new CardConfig( interface );
31}
32
33WLAN::WLAN( const CardConfig* configuration )
34{
35 _configuration = configuration;
36
37}
38
39WLAN::~WLAN()
40{
41 delete _configuration;
42
43}
44
45void WLAN::setMonitorMode( bool enabled )
46{
47
48 /*
49
50 if ( _configuration->system() == System_OpenZaurus && _configuration->type() == CardConfig::Prism )
51 {
52 }
53
54 */
55
56}
57
diff --git a/noncore/net/wellenreiter/gui/wlan.h b/noncore/net/wellenreiter/gui/wlan.h
new file mode 100644
index 0000000..139e218
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/wlan.h
@@ -0,0 +1,38 @@
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 WLAN_H
17#define WLAN_H
18
19class QString;
20class CardConfig;
21
22class WLAN
23{
24 public:
25
26 WLAN( const QString& interface );
27 WLAN( const CardConfig* );
28 virtual ~WLAN();
29 void setMonitorMode( bool enabled );
30
31 private:
32
33 const CardConfig* _configuration;
34
35};
36
37#endif
38