summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/gui-x11.pro4
-rw-r--r--noncore/net/wellenreiter/gui/gui.pro4
-rw-r--r--noncore/net/wellenreiter/gui/manufacturers.cpp58
-rw-r--r--noncore/net/wellenreiter/gui/manufacturers.h37
-rw-r--r--noncore/net/wellenreiter/gui/scanlistitem.h22
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp16
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.h5
7 files changed, 141 insertions, 5 deletions
diff --git a/noncore/net/wellenreiter/gui/gui-x11.pro b/noncore/net/wellenreiter/gui/gui-x11.pro
index 523bf15..c2a4394 100644
--- a/noncore/net/wellenreiter/gui/gui-x11.pro
+++ b/noncore/net/wellenreiter/gui/gui-x11.pro
@@ -1,11 +1,11 @@
1DESTDIR = . 1DESTDIR = .
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 wlan.h cardconfig.h 5HEADERS = wellenreiterbase.h wellenreiter.h scanlistitem.h scanlist.h logwindow.h hexwindow.h configwindow.h resource.h wlan.h cardconfig.h manufacturers.h
6SOURCES = main.cpp wellenreiterbase.cpp wellenreiter.cpp scanlistitem.cpp scanlist.cpp logwindow.cpp hexwindow.cpp configwindow.cpp resource.cpp wlan.cpp cardconfig.cpp 6SOURCES = main.cpp wellenreiterbase.cpp wellenreiter.cpp scanlistitem.cpp scanlist.cpp logwindow.cpp hexwindow.cpp configwindow.cpp resource.cpp wlan.cpp cardconfig.cpp manufacturers.cpp
7INCLUDEPATH += ../ 7INCLUDEPATH += ../
8DEPENDPATH += ../ 8DEPENDPATH += ../
9LIBS += -L. -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 ce1c387..52ed8c6 100644
--- a/noncore/net/wellenreiter/gui/gui.pro
+++ b/noncore/net/wellenreiter/gui/gui.pro
@@ -1,11 +1,11 @@
1DESTDIR = $(OPIEDIR)/bin 1DESTDIR = $(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 wlan.h cardconfig.h 5HEADERS = wellenreiterbase.h wellenreiter.h scanlistitem.h scanlist.h logwindow.h hexwindow.h configwindow.h wlan.h cardconfig.h manufacturers.h
6SOURCES = main.cpp wellenreiterbase.cpp wellenreiter.cpp scanlistitem.cpp scanlist.cpp logwindow.cpp hexwindow.cpp configwindow.cpp wlan.cpp cardconfig.cpp 6SOURCES = main.cpp wellenreiterbase.cpp wellenreiter.cpp scanlistitem.cpp scanlist.cpp logwindow.cpp hexwindow.cpp configwindow.cpp wlan.cpp cardconfig.cpp manufacturers.h
7INCLUDEPATH += $(OPIEDIR)/include ../ 7INCLUDEPATH += $(OPIEDIR)/include ../
8DEPENDPATH += $(OPIEDIR)/include ../ 8DEPENDPATH += $(OPIEDIR)/include ../
9LIBS += -lqpe -lopie -L. -lwellenreiter 9LIBS += -lqpe -lopie -L. -lwellenreiter
10INTERFACES = configbase.ui 10INTERFACES = configbase.ui
11TARGET = wellenreiter 11TARGET = wellenreiter
diff --git a/noncore/net/wellenreiter/gui/manufacturers.cpp b/noncore/net/wellenreiter/gui/manufacturers.cpp
new file mode 100644
index 0000000..d235989
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/manufacturers.cpp
@@ -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#include "manufacturers.h"
17
18// Qt
19#include <qstring.h>
20#include <qfile.h>
21#include <qtextstream.h>
22
23ManufacturerDB::ManufacturerDB( const QString& filename )
24{
25 QFile file( filename );
26 bool hasFile = file.open( IO_ReadOnly );
27 if (!hasFile)
28 {
29 qDebug( "ManufacturerDB: D'oh! Manufacturer list '%s' not found!", (const char*) filename );
30 }
31 else
32 {
33 qDebug( "ManufacturerDB: reading manufacturer list from '%s'...", (const char*) filename );
34 QTextStream s( &file );
35 QString addr;
36 QString manu;
37
38 while (!s.atEnd())
39 {
40 s >> addr;
41 s.skipWhiteSpace();
42 manu = s.readLine();
43 qDebug( "ManufacturerDB: read pair %s, %s", (const char*) addr, (const char*) manu );
44 manufacturers.insert( addr, manu );
45
46 }
47 }
48
49}
50
51ManufacturerDB::~ManufacturerDB()
52{
53}
54
55QString ManufacturerDB::lookup( const QString& macaddr )
56{
57 return manufacturers[macaddr.upper().left(8)];
58}
diff --git a/noncore/net/wellenreiter/gui/manufacturers.h b/noncore/net/wellenreiter/gui/manufacturers.h
new file mode 100644
index 0000000..d69977a
--- a/dev/null
+++ b/noncore/net/wellenreiter/gui/manufacturers.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 MANUFACTURERS_H
17#define MANUFACTURERS_H
18
19#include <qmap.h>
20#include <string.h>
21
22class ManufacturerDB
23{
24 public:
25
26 ManufacturerDB( const QString& filename );
27 virtual ~ManufacturerDB();
28 QString lookup( const QString& macaddr );
29
30 private:
31
32 QMap<QString, QString> manufacturers;
33
34};
35
36#endif
37
diff --git a/noncore/net/wellenreiter/gui/scanlistitem.h b/noncore/net/wellenreiter/gui/scanlistitem.h
index cd9d883..47a5a4e 100644
--- a/noncore/net/wellenreiter/gui/scanlistitem.h
+++ b/noncore/net/wellenreiter/gui/scanlistitem.h
@@ -4,52 +4,74 @@
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 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 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 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#ifndef SCANLISTITEM_H 16#ifndef SCANLISTITEM_H
17#define SCANLISTITEM_H 17#define SCANLISTITEM_H
18 18
19#include <qlistview.h> 19#include <qlistview.h>
20 20
21class QString; 21class QString;
22 22
23class MScanListItem: public QListViewItem 23class MScanListItem: public QListViewItem
24{ 24{
25 public: 25 public:
26 26
27 MScanListItem::MScanListItem( QListView* parent, 27 MScanListItem::MScanListItem( QListView* parent,
28 QString type, 28 QString type,
29 QString essid, 29 QString essid,
30 QString macaddr, 30 QString macaddr,
31 bool wep, 31 bool wep,
32 int channel, 32 int channel,
33 int signal ); 33 int signal );
34 34
35 MScanListItem::MScanListItem( QListViewItem* parent, 35 MScanListItem::MScanListItem( QListViewItem* parent,
36 QString type, 36 QString type,
37 QString essid, 37 QString essid,
38 QString macaddr, 38 QString macaddr,
39 bool wep, 39 bool wep,
40 int channel, 40 int channel,
41 int signal ); 41 int signal );
42 42
43 43
44 protected: 44 protected:
45 45
46 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); 46 virtual void decorateItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal );
47 47
48 public: 48 public:
49 49
50 QString type; 50 QString type;
51 51
52 public:
53
54 //const QString& type() { return _type; };
55 const QString& essid() { return _essid; };
56 const QString& macaddr() { return _macaddr; };
57 bool wep() { return _wep; };
58 int channel() { return _channel; };
59 int signal() { return _signal; };
60 int received() { return _received; };
61
62 void setSignal( int signal ) { /* TODO */ };
63 void incReceived() { _received++; };
64
65 private:
66 QString _type;
67 QString _essid;
68 QString _macaddr;
69 bool _wep;
70 int _channel;
71 int _signal;
72 int _received;
73
52}; 74};
53 75
54#endif 76#endif
55 77
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 2d9bbee..9068e3a 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -8,146 +8,162 @@
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// Qt 16// Qt
17 17
18#include <qpushbutton.h> 18#include <qpushbutton.h>
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#include <qsocketnotifier.h>
23 23
24// Qtopia 24// Qtopia
25 25
26#ifdef QWS 26#ifdef QWS
27#include <qpe/global.h> 27#include <qpe/global.h>
28#endif 28#endif
29 29
30// Opie 30// Opie
31 31
32#ifdef QWS 32#ifdef QWS
33#include <opie/odevice.h> 33#include <opie/odevice.h>
34using namespace Opie; 34using namespace Opie;
35#endif 35#endif
36 36
37// Standard 37// Standard
38 38
39#include <assert.h> 39#include <assert.h>
40#include <errno.h> 40#include <errno.h>
41#include <unistd.h> 41#include <unistd.h>
42#include <string.h> 42#include <string.h>
43#include <sys/types.h> 43#include <sys/types.h>
44#include <sys/socket.h> 44#include <sys/socket.h>
45#include <stdlib.h> 45#include <stdlib.h>
46#include <fcntl.h> 46#include <fcntl.h>
47 47
48// Local 48// Local
49 49
50#include "wellenreiter.h" 50#include "wellenreiter.h"
51#include "scanlist.h" 51#include "scanlist.h"
52#include "logwindow.h" 52#include "logwindow.h"
53#include "hexwindow.h" 53#include "hexwindow.h"
54#include "configwindow.h" 54#include "configwindow.h"
55 55
56#include "manufacturers.h"
57
56#include <libwellenreiter/source/wl_sock.hh> 58#include <libwellenreiter/source/wl_sock.hh>
57#include <libwellenreiter/source/wl_proto.hh> 59#include <libwellenreiter/source/wl_proto.hh>
58#include <daemon/source/config.hh> 60#include <daemon/source/config.hh>
59 61
60Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl ) 62Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl )
61 : WellenreiterBase( parent, name, fl ), daemonRunning( false ) 63 : WellenreiterBase( parent, name, fl ), daemonRunning( false )
62{ 64{
63 65
66 //
67 // construct manufacturer database
68 //
69
70 QString manufile;
71 #ifdef QWS
72 manufile.sprintf( "%s/share/wellenreiter/manufacturers.dat", (const char*) qApp.qpeDir() );
73 #else
74 manufile.sprintf( "/home/mickey/work/opie/share/wellenreiter/manufacturers.dat" );
75 #endif
76 manufacturerdb = new ManufacturerDB( manufile );
77
64 logwindow->log( "(i) Wellenreiter has been started." ); 78 logwindow->log( "(i) Wellenreiter has been started." );
65 79
66 // 80 //
67 // detect operating system 81 // detect operating system
68 // 82 //
69 83
70 #ifdef QWS 84 #ifdef QWS
71 QString sys; 85 QString sys;
72 sys.sprintf( "(i) Running on '%s'.", (const char*) ODevice::inst()->systemString() ); 86 sys.sprintf( "(i) Running on '%s'.", (const char*) ODevice::inst()->systemString() );
73 _system = ODevice::inst()->system(); 87 _system = ODevice::inst()->system();
74 logwindow->log( sys ); 88 logwindow->log( sys );
75 #endif 89 #endif
76 90
77 // 91 //
78 // setup socket for daemon communication, register socket notifier 92 // setup socket for daemon communication, register socket notifier
79 // 93 //
80 94
81 daemon_fd = wl_setupsock( GUIADDR, GUIPORT ); 95 daemon_fd = wl_setupsock( GUIADDR, GUIPORT );
82 if ( daemon_fd == -1 ) 96 if ( daemon_fd == -1 )
83 { 97 {
84 logwindow->log( "(E) Couldn't get file descriptor for commsocket." ); 98 logwindow->log( "(E) Couldn't get file descriptor for commsocket." );
85 } 99 }
86 else 100 else
87 { 101 {
88 int flags; 102 int flags;
89 flags = fcntl( daemon_fd, F_GETFL, 0 ); 103 flags = fcntl( daemon_fd, F_GETFL, 0 );
90 fcntl( daemon_fd, F_SETFL, flags | O_NONBLOCK ); 104 fcntl( daemon_fd, F_SETFL, flags | O_NONBLOCK );
91 QSocketNotifier *sn = new QSocketNotifier( daemon_fd, QSocketNotifier::Read, parent ); 105 QSocketNotifier *sn = new QSocketNotifier( daemon_fd, QSocketNotifier::Read, parent );
92 connect( sn, SIGNAL( activated( int ) ), this, SLOT( dataReceived() ) ); 106 connect( sn, SIGNAL( activated( int ) ), this, SLOT( dataReceived() ) );
93 } 107 }
94 108
95 // setup GUI 109 // setup GUI
96 110
97 connect( button, SIGNAL( clicked() ), this, SLOT( buttonClicked() ) ); 111 connect( button, SIGNAL( clicked() ), this, SLOT( buttonClicked() ) );
98 button->setEnabled( false ); 112 button->setEnabled( false );
99 netview->setColumnWidthMode( 1, QListView::Manual ); 113 netview->setColumnWidthMode( 1, QListView::Manual );
100 114
101} 115}
102 116
103Wellenreiter::~Wellenreiter() 117Wellenreiter::~Wellenreiter()
104{ 118{
105 // no need to delete child widgets, Qt does it all for us 119 // no need to delete child widgets, Qt does it all for us
120
121 delete manufacturerdb;
106} 122}
107 123
108void Wellenreiter::handleMessage() 124void Wellenreiter::handleMessage()
109{ 125{
110 // FIXME: receive message and handle it 126 // FIXME: receive message and handle it
111 127
112 qDebug( "received message from daemon." ); 128 qDebug( "received message from daemon." );
113 129
114 char buffer[10000]; 130 char buffer[10000];
115 memset( &buffer, 0, sizeof( buffer ) ); 131 memset( &buffer, 0, sizeof( buffer ) );
116 132
117 // int result = #wl_recv( &daemon_fd, (char*) &buffer, sizeof(buffer) ); 133 // int result = #wl_recv( &daemon_fd, (char*) &buffer, sizeof(buffer) );
118 134
119 struct sockaddr from; 135 struct sockaddr from;
120 socklen_t len; 136 socklen_t len;
121 137
122 int result = recvfrom( daemon_fd, &buffer, 8192, MSG_WAITALL, &from, &len ); 138 int result = recvfrom( daemon_fd, &buffer, 8192, MSG_WAITALL, &from, &len );
123 139
124 qDebug( "received %d from recv [%d bytes]", result, len ); 140 qDebug( "received %d from recv [%d bytes]", result, len );
125 141
126 if ( result == -1 ) 142 if ( result == -1 )
127 { 143 {
128 qDebug( "Warning: %s", strerror( errno ) ); 144 qDebug( "Warning: %s", strerror( errno ) );
129 return; 145 return;
130 } 146 }
131 147
132 int command = buffer[1] - 48; 148 int command = buffer[1] - 48;
133 149
134/* 150/*
135typedef struct { 151typedef struct {
136 int net_type; 1 = Accesspoint ; 2 = Ad-Hoc 152 int net_type; 1 = Accesspoint ; 2 = Ad-Hoc
137 int ssid_len; Length of SSID 153 int ssid_len; Length of SSID
138 int channel; Channel 154 int channel; Channel
139 int wep; 1 = WEP enabled ; 0 = disabled 155 int wep; 1 = WEP enabled ; 0 = disabled
140 char mac[64]; MAC address of Accesspoint 156 char mac[64]; MAC address of Accesspoint
141 char bssid[128]; BSSID of Accesspoint 157 char bssid[128]; BSSID of Accesspoint
142} wl_network_t; 158} wl_network_t;
143*/ 159*/
144 160
145 qDebug( "Recv result: %d", ( result ) ); 161 qDebug( "Recv result: %d", ( result ) );
146 qDebug( "Sniffer sent: '%s'", (const char*) buffer ); 162 qDebug( "Sniffer sent: '%s'", (const char*) buffer );
147 hexwindow->log( (const char*) &buffer ); 163 hexwindow->log( (const char*) &buffer );
148 164
149 if ( command == NETFOUND ) /* new network found */ 165 if ( command == NETFOUND ) /* new network found */
150 { 166 {
151 qDebug( "Sniffer said: new network found." ); 167 qDebug( "Sniffer said: new network found." );
152 wl_network_t n; 168 wl_network_t n;
153 get_network_found( &n, (char*) &buffer ); 169 get_network_found( &n, (char*) &buffer );
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.h b/noncore/net/wellenreiter/gui/wellenreiter.h
index 2296892..9715983 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.h
+++ b/noncore/net/wellenreiter/gui/wellenreiter.h
@@ -1,56 +1,59 @@
1/********************************************************************** 1/**********************************************************************
2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. 2** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved.
3** 3**
4** This file is part of Opie Environment. 4** This file is part of Opie Environment.
5** 5**
6** This file may be distributed and/or modified under the terms of the 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 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 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#ifndef WELLENREITER_H 16#ifndef WELLENREITER_H
17#define WELLENREITER_H 17#define WELLENREITER_H
18 18
19#include "wellenreiterbase.h" 19#include "wellenreiterbase.h"
20 20
21#ifdef QWS 21#ifdef QWS
22#include <opie/odevice.h> 22#include <opie/odevice.h>
23using namespace Opie; 23using namespace Opie;
24#endif 24#endif
25 25
26class QTimerEvent; 26class QTimerEvent;
27class QPixmap; 27class QPixmap;
28class ManufacturerDB;
28 29
29class Wellenreiter : public WellenreiterBase { 30class Wellenreiter : public WellenreiterBase {
30 Q_OBJECT 31 Q_OBJECT
31 32
32public: 33public:
33 34
34 Wellenreiter( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); 35 Wellenreiter( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
35 ~Wellenreiter(); 36 ~Wellenreiter();
36 37
37protected: 38protected:
38 39
39 bool daemonRunning; 40 bool daemonRunning;
40 41
41public slots: 42public slots:
42 void buttonClicked(); 43 void buttonClicked();
43 void dataReceived(); 44 void dataReceived();
44 45
45private: 46private:
46 int daemon_fd; // socket filedescriptor for udp communication socket 47 int daemon_fd; // socket filedescriptor for udp communication socket
47 #ifdef QWS 48 #ifdef QWS
48 OSystem _system; // Opie Operating System identifier 49 OSystem _system; // Opie Operating System identifier
49 #endif 50 #endif
50 void handleMessage(); 51 void handleMessage();
51 52
53 ManufacturerDB* manufacturerdb;
54
52 //void readConfig(); 55 //void readConfig();
53 //void writeConfig(); 56 //void writeConfig();
54}; 57};
55 58
56#endif 59#endif