summaryrefslogtreecommitdiff
authormickeyl <mickeyl>2002-12-16 23:38:55 (UTC)
committer mickeyl <mickeyl>2002-12-16 23:38:55 (UTC)
commit3f28b7e0edb6115699b19f9db37b55f775b91dc7 (patch) (side-by-side diff)
tree6cfcd1e3175c5a2e02e00851803a24280bc1ac32
parent9cb9007f211c22349e3183ba20bb7f817d811005 (diff)
downloadopie-3f28b7e0edb6115699b19f9db37b55f775b91dc7.zip
opie-3f28b7e0edb6115699b19f9db37b55f775b91dc7.tar.gz
opie-3f28b7e0edb6115699b19f9db37b55f775b91dc7.tar.bz2
- updates to the config window
- GUI now starts channelhopper and sniffer using the command line interface
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/configbase.ui80
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.h1
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp78
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.h2
4 files changed, 141 insertions, 20 deletions
diff --git a/noncore/net/wellenreiter/gui/configbase.ui b/noncore/net/wellenreiter/gui/configbase.ui
index 57ffd2a..e2f734a 100644
--- a/noncore/net/wellenreiter/gui/configbase.ui
+++ b/noncore/net/wellenreiter/gui/configbase.ui
@@ -6,47 +6,56 @@
<name>name</name>
<cstring>WellenreiterConfigBase</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>240</width>
- <height>276</height>
+ <width>232</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>
- <number>11</number>
+ <number>4</number>
</property>
<property stdset="1">
<name>spacing</name>
- <number>6</number>
+ <number>0</number>
</property>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout5</cstring>
</property>
+ <property>
+ <name>layoutSpacing</name>
+ </property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
- <number>6</number>
+ <number>2</number>
</property>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel3_2</cstring>
</property>
<property stdset="1">
@@ -75,24 +84,27 @@
</hbox>
</widget>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout7</cstring>
</property>
+ <property>
+ <name>layoutSpacing</name>
+ </property>
<grid>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
- <number>6</number>
+ <number>2</number>
</property>
<widget row="0" column="0" >
<class>QComboBox</class>
<item>
<property>
<name>text</name>
<string>&lt;select&gt;</string>
</property>
@@ -134,17 +146,17 @@
</property>
</item>
<property stdset="1">
<name>name</name>
<cstring>interfaceName</cstring>
</property>
<property stdset="1">
<name>enabled</name>
- <bool>false</bool>
+ <bool>true</bool>
</property>
</widget>
<widget row="4" column="0" rowspan="1" colspan="2" >
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>activeScanning</cstring>
</property>
@@ -190,17 +202,17 @@
</property>
</item>
<property stdset="1">
<name>name</name>
<cstring>deviceType</cstring>
</property>
<property stdset="1">
<name>enabled</name>
- <bool>false</bool>
+ <bool>true</bool>
</property>
</widget>
<widget row="3" column="0" rowspan="1" colspan="2" >
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>additionalInfo</cstring>
</property>
@@ -216,17 +228,17 @@
<widget row="2" column="0" >
<class>QSpinBox</class>
<property stdset="1">
<name>name</name>
<cstring>hopInterval</cstring>
</property>
<property stdset="1">
<name>enabled</name>
- <bool>false</bool>
+ <bool>true</bool>
</property>
<property stdset="1">
<name>suffix</name>
<string> ms</string>
</property>
<property stdset="1">
<name>maxValue</name>
<number>2000</number>
@@ -243,69 +255,72 @@
<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>false</bool>
+ <bool>true</bool>
</property>
<property stdset="1">
<name>text</name>
<string>Hop Interval</string>
</property>
</widget>
<widget row="1" column="1" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel2_3</cstring>
</property>
<property stdset="1">
<name>enabled</name>
- <bool>false</bool>
+ <bool>true</bool>
</property>
<property stdset="1">
<name>text</name>
<string>Device Type</string>
</property>
</widget>
<widget row="0" column="1" >
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel1_2</cstring>
</property>
<property stdset="1">
<name>enabled</name>
- <bool>false</bool>
+ <bool>true</bool>
</property>
<property stdset="1">
<name>text</name>
<string>Interface Name</string>
</property>
</widget>
</grid>
</widget>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout6</cstring>
</property>
+ <property>
+ <name>layoutSpacing</name>
+ </property>
<hbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
- <number>6</number>
+ <number>2</number>
</property>
<widget>
<class>QLabel</class>
<property stdset="1">
<name>name</name>
<cstring>TextLabel3_2_2</cstring>
</property>
<property stdset="1">
@@ -332,26 +347,29 @@
</property>
</widget>
</hbox>
</widget>
<widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
- <cstring>Layout8</cstring>
+ <cstring>Layout5</cstring>
+ </property>
+ <property>
+ <name>layoutSpacing</name>
</property>
<vbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
- <number>6</number>
+ <number>-1</number>
</property>
<widget>
<class>QCheckBox</class>
<property stdset="1">
<name>name</name>
<cstring>groupNetworks</cstring>
</property>
<property stdset="1">
@@ -373,13 +391,45 @@
<name>enabled</name>
<bool>false</bool>
</property>
<property stdset="1">
<name>text</name>
<string>Enable Activity Display</string>
</property>
</widget>
+ <widget>
+ <class>QCheckBox</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>beepOnFound</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Beep on new network</string>
+ </property>
+ </widget>
</vbox>
</widget>
+ <spacer>
+ <property>
+ <name>name</name>
+ <cstring>Spacer2</cstring>
+ </property>
+ <property stdset="1">
+ <name>orientation</name>
+ <enum>Vertical</enum>
+ </property>
+ <property stdset="1">
+ <name>sizeType</name>
+ <enum>Expanding</enum>
+ </property>
+ <property>
+ <name>sizeHint</name>
+ <size>
+ <width>20</width>
+ <height>20</height>
+ </size>
+ </property>
+ </spacer>
</vbox>
</widget>
</UI>
diff --git a/noncore/net/wellenreiter/gui/configwindow.h b/noncore/net/wellenreiter/gui/configwindow.h
index 759d46d..c2db283 100644
--- a/noncore/net/wellenreiter/gui/configwindow.h
+++ b/noncore/net/wellenreiter/gui/configwindow.h
@@ -19,12 +19,13 @@
#include "configbase.h"
class WellenreiterConfigWindow : public WellenreiterConfigBase
{
public:
WellenreiterConfigWindow( QWidget * parent = 0, const char * name = "WellenreiterConfigWindow", WFlags f = 0 );
+
};
#endif
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 5808e9c..764ef34 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -11,38 +11,49 @@
** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
**
***********************************************************************/
// Qt
#include <qpushbutton.h>
+#include <qmessagebox.h>
+#include <qcombobox.h>
+#include <qspinbox.h>
+
+// Qtopia
+
+#ifdef QWS
+#include <qpe/global.h>
+#endif
// Standard
#include <assert.h>
#include <errno.h>
#include <unistd.h>
#include <string.h>
#include <sys/types.h>
+#include <stdlib.h>
// Local
#include "wellenreiter.h"
#include "scanlistitem.h"
#include "logwindow.h"
#include "hexwindow.h"
+#include "configwindow.h"
#include "../libwellenreiter/source/sock.hh" // <--- ugly path, FIX THIS!
#include "../libwellenreiter/source/proto.hh" // <--- ugly path, FIX THIS!
#include "../daemon/source/config.hh" // <--- ugly path, FIX THIS!
Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl )
- : WellenreiterBase( parent, name, fl )
+ : WellenreiterBase( parent, name, fl ), daemonRunning( false )
{
logwindow->log( "(i) Wellenreiter has been started." );
connect( button, SIGNAL( clicked() ), this, SLOT( buttonClicked() ) );
netview->setColumnWidthMode( 1, QListView::Manual );
//
@@ -144,25 +155,25 @@ bool Wellenreiter::hasMessage()
return false;
}
else
return true; //FD_ISSET( daemon_fd, &rfds ); gibbet 'eh nur einen Deskriptor
}
void Wellenreiter::timerEvent( QTimerEvent* e )
{
- qDebug( "checking for message..." );
+ //qDebug( "checking for message..." );
if ( hasMessage() )
{
- qDebug( "got message" );
+ //qDebug( "got message from daemon" );
handleMessage();
}
else
{
- qDebug( "no message..." );
+ //qDebug( "no message..." );
}
}
void Wellenreiter::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal )
{
// FIXME: this code belongs in customized QListView, not into this class
// FIXME: scanlistitem needs a proper encapsulation and not such a damn dealing with text(...)
@@ -232,26 +243,83 @@ void Wellenreiter::addNewItem( QString type, QString essid, QString macaddr, boo
}
logwindow->log( s );
}
void Wellenreiter::buttonClicked()
{
+ if ( daemonRunning )
+ {
+ logwindow->log( "(i) Daemon has been stopped." );
+ button->setText( "Start Scanning" );
+
+ // Stop daemon
+
+ // find out pids of wellenreiterd and orinoco_hopper
+
+ }
+
+ else
+ {
+
+ // get configuration from config window
- // FIXME: communicate with daemon and set button text according to state
+ const QString& interface = configwindow->interfaceName->currentText();
+ const QString& cardtype = configwindow->deviceType->currentText();
+ const QString& interval = configwindow->hopInterval->cleanText();
+ if ( ( interface == "<select>" ) || ( cardtype == "<select>" ) )
+ {
+ QMessageBox::information( this, "Wellenreiter/Opie", "You must configure your\ndevice before scanning." );
+ return;
+ }
+
+ logwindow->log( "(i) Daemon has been started." );
button->setText( "Stop Scanning" );
+#ifdef QWS
+
+ // set interface into monitor mode
+
+ 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 = "orinoco_hopper ";
+ cmdline += interface;
+ cmdline += " -i ";
+ cmdline += interval;
+ //qDebug( "execute: %s", (const char*) cmdline );
+ Global::execute( cmdline );
+
+ // start daemon
+
+ cmdline = "wellenreiterd ";
+ cmdline += interface;
+ cmdline += " 3";
+ //qDebug( "execute: %s", (const char*) cmdline );
+ Global::execute( cmdline );
+#endif
+
+ /*
+
// add some test stations, so that we can see if the GUI part works
addNewItem( "managed", "Vanille", "04:00:20:EF:A6:43", true, 6, 80 );
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 );
QString command ("98");
//sendcomm( DAEMONADDR, DAEMONPORT, (const char*) command );
+ */
+ }
}
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.h b/noncore/net/wellenreiter/gui/wellenreiter.h
index 61f7503..052a242 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.h
+++ b/noncore/net/wellenreiter/gui/wellenreiter.h
@@ -26,16 +26,18 @@ class Wellenreiter : public WellenreiterBase {
public:
Wellenreiter( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 );
~Wellenreiter();
protected:
virtual void timerEvent( QTimerEvent* );
+ bool daemonRunning;
+
public slots:
void buttonClicked();
void addNewItem( QString type, QString essid, QString ap, bool wep, int channel, int signal );
private:
int daemon_fd; // socket filedescriptor for udp communication socket
bool hasMessage();