author | mickeyl <mickeyl> | 2003-02-14 23:28:10 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-02-14 23:28:10 (UTC) |
commit | e8f0c623ff6a8822b84b9cc4ee3c1fb3b3016738 (patch) (side-by-side diff) | |
tree | dd6a6e1e7e33c94b41240c9547ce0e7f7a255414 | |
parent | 643c8058bbd67a8fedfd98cb895419cadde04e78 (diff) | |
download | opie-e8f0c623ff6a8822b84b9cc4ee3c1fb3b3016738.zip opie-e8f0c623ff6a8822b84b9cc4ee3c1fb3b3016738.tar.gz opie-e8f0c623ff6a8822b84b9cc4ee3c1fb3b3016738.tar.bz2 |
- remove manual switch into monitor mode ==> wellenreiterd handles this now
- remove manual start of channelswitcher ==> wellenreiterd handles this now
- add device type configurations for cisco, wlan-ng, hostap and orinoco
- minor bugfix to the start/stop logic
-rw-r--r-- | noncore/net/wellenreiter/gui/configbase.ui | 30 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/configwindow.cpp | 24 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/configwindow.h | 5 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/manufacturers.h | 1 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.cpp | 51 |
5 files changed, 68 insertions, 43 deletions
diff --git a/noncore/net/wellenreiter/gui/configbase.ui b/noncore/net/wellenreiter/gui/configbase.ui index 8dcf513..7992e6b 100644 --- a/noncore/net/wellenreiter/gui/configbase.ui +++ b/noncore/net/wellenreiter/gui/configbase.ui @@ -1,30 +1,30 @@ <!DOCTYPE UI><UI> <class>WellenreiterConfigBase</class> <widget> <class>QWidget</class> <property stdset="1"> <name>name</name> <cstring>WellenreiterConfigBase</cstring> </property> <property stdset="1"> <name>geometry</name> <rect> <x>0</x> <y>0</y> - <width>228</width> + <width>224</width> <height>267</height> </rect> </property> <property stdset="1"> <name>caption</name> <string>Form1</string> </property> <property> <name>layoutMargin</name> </property> <property> <name>layoutSpacing</name> </property> <vbox> <property stdset="1"> <name>margin</name> @@ -140,82 +140,102 @@ </property> </item> <item> <property> <name>text</name> <string>wifi1</string> </property> </item> <property stdset="1"> <name>name</name> <cstring>interfaceName</cstring> </property> <property stdset="1"> <name>enabled</name> <bool>true</bool> </property> + <property> + <name>whatsThis</name> + <string>Choose the interface used for sniffing.</string> + </property> </widget> <widget row="4" column="0" rowspan="1" colspan="2" > <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>activeScanning</cstring> </property> <property stdset="1"> <name>enabled</name> <bool>false</bool> </property> <property stdset="1"> <name>text</name> <string>Active Scanning (caution!)</string> </property> </widget> <widget row="1" column="0" > <class>QComboBox</class> <item> <property> <name>text</name> <string><select></string> </property> </item> <item> <property> <name>text</name> - <string>orinoco</string> + <string>cisco</string> + </property> + </item> + <item> + <property> + <name>text</name> + <string>wlan-ng</string> + </property> + </item> + <item> + <property> + <name>text</name> + <string>hostap</string> </property> </item> <item> <property> <name>text</name> - <string>prism</string> + <string>orinoco</string> </property> </item> <item> <property> <name>text</name> <string><manual></string> </property> </item> <property stdset="1"> <name>name</name> <cstring>deviceType</cstring> </property> <property stdset="1"> <name>enabled</name> <bool>true</bool> </property> + <property> + <name>whatsThis</name> + <string>Choose the type of driver used for sniffing.</string> + </property> </widget> <widget row="3" column="0" rowspan="1" colspan="2" > <class>QCheckBox</class> <property stdset="1"> <name>name</name> <cstring>additionalInfo</cstring> </property> <property stdset="1"> <name>enabled</name> <bool>false</bool> </property> <property stdset="1"> <name>text</name> <string>Gather Additional Info</string> </property> </widget> @@ -232,32 +252,36 @@ <property stdset="1"> <name>suffix</name> <string> ms</string> </property> <property stdset="1"> <name>maxValue</name> <number>2000</number> </property> <property stdset="1"> <name>minValue</name> <number>100</number> </property> <property stdset="1"> <name>lineStep</name> <number>100</number> </property> + <property> + <name>whatsThis</name> + <string>Choose the channel hop interval.</string> + </property> </widget> <widget row="2" column="1" > <class>QLabel</class> <property stdset="1"> <name>name</name> <cstring>TextLabel3_3</cstring> </property> <property stdset="1"> <name>enabled</name> <bool>true</bool> </property> <property stdset="1"> <name>text</name> <string>Hop Interval</string> </property> </widget> diff --git a/noncore/net/wellenreiter/gui/configwindow.cpp b/noncore/net/wellenreiter/gui/configwindow.cpp index 04e3457..515d9b2 100644 --- a/noncore/net/wellenreiter/gui/configwindow.cpp +++ b/noncore/net/wellenreiter/gui/configwindow.cpp @@ -1,23 +1,47 @@ /********************************************************************** ** Copyright (C) 2002 Michael 'Mickey' Lauer. All rights reserved. ** ** This file is part of Opie Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** **********************************************************************/ #include "configwindow.h" +#include <qmap.h> +#include <qcombobox.h> +#include <qspinbox.h> WellenreiterConfigWindow::WellenreiterConfigWindow( QWidget * parent, const char * name, WFlags f ) :WellenreiterConfigBase( parent, name, f ) { + _devicetype[ "cisco" ] = 1; + _devicetype[ "wlan-ng" ] = 2; + _devicetype[ "hostap" ] = 3; + _devicetype[ "orinoco" ] = 4; + _devicetype[ "<manual>" ] = 5; +}; +int WellenreiterConfigWindow::daemonDeviceType() +{ + QString name = deviceType->currentText(); + if ( _devicetype.contains( name ) ) + { + return _devicetype[name]; + } + else + { + return 0; + } }; +int WellenreiterConfigWindow::daemonHopInterval() +{ + return hopInterval->cleanText().toInt(); +} diff --git a/noncore/net/wellenreiter/gui/configwindow.h b/noncore/net/wellenreiter/gui/configwindow.h index c2db283..c627901 100644 --- a/noncore/net/wellenreiter/gui/configwindow.h +++ b/noncore/net/wellenreiter/gui/configwindow.h @@ -4,28 +4,33 @@ ** This file is part of Opie Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** **********************************************************************/ #ifndef WELLENREITERCONFIGWINDOW_H #define WELLENREITERCONFIGWINDOW_H #include "configbase.h" +#include <qmap.h> class WellenreiterConfigWindow : public WellenreiterConfigBase { public: WellenreiterConfigWindow( QWidget * parent = 0, const char * name = "WellenreiterConfigWindow", WFlags f = 0 ); + int daemonDeviceType(); + int daemonHopInterval(); + protected: + QMap<QString, int> _devicetype; }; #endif diff --git a/noncore/net/wellenreiter/gui/manufacturers.h b/noncore/net/wellenreiter/gui/manufacturers.h index 67afe21..75728b1 100644 --- a/noncore/net/wellenreiter/gui/manufacturers.h +++ b/noncore/net/wellenreiter/gui/manufacturers.h @@ -4,33 +4,32 @@ ** This file is part of Opie Environment. ** ** This file may be distributed and/or modified under the terms of the ** GNU General Public License version 2 as published by the Free Software ** Foundation and appearing in the file LICENSE.GPL included in the ** packaging of this file. ** ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. ** **********************************************************************/ #ifndef MANUFACTURERS_H #define MANUFACTURERS_H #include <qmap.h> -#include <string.h> class ManufacturerDB { public: ManufacturerDB( const QString& filename ); virtual ~ManufacturerDB(); const QString& lookup( const QString& macaddr ) const; private: QMap<QString, QString> manufacturers; }; #endif diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp index 4ee9a35..4c1c972 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.cpp +++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp @@ -219,95 +219,68 @@ void Wellenreiter::buttonClicked() addNewItem( "managed", "Vanille", "04:00:20:EF:A6:23", true, 11, 10 ); addNewItem( "adhoc", "ELAN", "40:03:43:E7:16:22", false, 3, 10 ); addNewItem( "adhoc", "ELAN", "40:03:53:E7:56:62", false, 3, 15 ); addNewItem( "adhoc", "ELAN", "40:03:63:E7:56:E2", false, 3, 20 ); */ if ( daemonRunning ) { daemonRunning = false; logwindow->log( "(i) Daemon has been stopped." ); button->setText( "Start Scanning" ); // Stop daemon - ugly for now... later better - system( "killall orinoco_hopper" ); system( "killall wellenreiterd" ); // get configuration from config window const QString& interface = configwindow->interfaceName->currentText(); const QString& cardtype = configwindow->deviceType->currentText(); - const QString& interval = configwindow->hopInterval->cleanText(); + //const QString& interval = configwindow->hopInterval->cleanText(); // reset the card trying to get into a usable state again QString cmdline; - cmdline.sprintf( "iwpriv %s monitor 1", (const char*) interface ); - system( cmdline ); - cmdline.sprintf( "iwpriv %s monitor 1 6", (const char*) interface ); - system( cmdline ); - cmdline.sprintf( "ifconfig %s -promisc", (const char*) interface ); + cmdline.sprintf( "cardctl eject; cardctl insert" ); system( cmdline ); cmdline.sprintf( "killall -14 dhcpcd" ); system( cmdline ); cmdline.sprintf( "killall -10 udhcpc" ); // message the user QMessageBox::information( this, "Wellenreiter/Opie", "Your wireless card\nshould now be usable again." ); } else { - logwindow->log( "(i) Daemon has been started." ); - daemonRunning = true; - button->setText( "Stop Scanning" ); - // get configuration from config window const QString& interface = configwindow->interfaceName->currentText(); - const QString& cardtype = configwindow->deviceType->currentText(); - const QString& interval = configwindow->hopInterval->cleanText(); + const int cardtype = configwindow->daemonDeviceType(); + const int interval = configwindow->daemonHopInterval(); - if ( ( interface == "<select>" ) || ( cardtype == "<select>" ) ) + if ( ( interface == "<select>" ) || ( cardtype == 0 ) ) { QMessageBox::information( this, "Wellenreiter/Opie", "You must configure your\ndevice before scanning." ); return; } - // set interface into monitor mode - /* Global::Execute definitely does not work very well with non-gui stuff! :( */ + // start wellenreiterd QString cmdline; - cmdline.sprintf( "iwpriv %s monitor 2", (const char*) interface ); - system( cmdline ); - cmdline.sprintf( "iwpriv %s monitor 2 1", (const char*) interface ); - system( cmdline ); - - // start channel hopper + cmdline.sprintf( "wellenreiterd %s %d &", (const char*) interface, cardtype ); - cmdline = "orinoco_hopper "; - cmdline += interface; - cmdline += " -i "; - cmdline += interval; - cmdline += " &"; - qDebug( "execute: %s", (const char*) cmdline ); + qDebug( "about to execute '%s' ...", (const char*) cmdline ); system( cmdline ); - qDebug( "done" ); - - // start daemon - - cmdline = "wellenreiterd "; - cmdline += interface; - cmdline += " 3"; - cmdline += " &"; + qDebug( "done!" ); - qDebug( "execute: %s", (const char*) cmdline ); - system( cmdline ); - qDebug( "done" ); + logwindow->log( "(i) Daemon has been started." ); + daemonRunning = true; + button->setText( "Stop Scanning" ); } } |