author | mickeyl <mickeyl> | 2003-09-26 12:24:21 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-09-26 12:24:21 (UTC) |
commit | d1a11b45e805fe7771ea05944757d767c3c4c8ea (patch) (side-by-side diff) | |
tree | f270fea2d1d05c9fc8db1d57542ef7a01870750c | |
parent | a88328daa117bdb3bd72cef6ca6e5e2b9d619a13 (diff) | |
download | opie-d1a11b45e805fe7771ea05944757d767c3c4c8ea.zip opie-d1a11b45e805fe7771ea05944757d767c3c4c8ea.tar.gz opie-d1a11b45e805fe7771ea05944757d767c3c4c8ea.tar.bz2 |
more work on persistent configuration
version bump to 1.0.1-snap
-rw-r--r-- | noncore/net/wellenreiter/README | 12 | ||||
-rw-r--r-- | noncore/net/wellenreiter/TODO | 1 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/configwindow.cpp | 67 | ||||
-rw-r--r-- | noncore/net/wellenreiter/opie-wellenreiter.control | 4 |
4 files changed, 73 insertions, 11 deletions
diff --git a/noncore/net/wellenreiter/README b/noncore/net/wellenreiter/README index 53a337a..729d30f 100644 --- a/noncore/net/wellenreiter/README +++ b/noncore/net/wellenreiter/README @@ -1,68 +1,68 @@ /************************************************************************ /* W e l l e n r e i t e r I I /* =============================== /* -/* Version: 1.0-rc2 +/* Version: 1.0.2 /************************************************************************ ---------------------------------------------------- -Release Notes for Wellenreiter II / July 2003 +Release Notes for Wellenreiter II / October 2003 ---------------------------------------------------- ===================== = Supported Devices ===================== - HERMES chipset [ orinoco or hostap ], e.g. Lucent/Agere cards, ... - PRISM2 chipset [ orinoco or hostap ], e.g. D-Link, Buffallo, ... - SYMBOL/SPECTRUM chipset [ orinoco ], e.g. Symbol Spectrum 24, Socket Lowpower CF, ... - CISCO chipset -- wlan-ng supported chipsets +- WLAN-NG supported chipsets, e.g. D-Link USB cards ===================== = Build ===================== To compile a standalone Wellenreiter II for X11, you need Qt3 and the development packages for Qt3, e.g. libqt3-devel. * Set $QTDIR to the appropriate directory (e.g. /usr/lib/qt3) * './build make' * as root, './build install' - * Wellenreiter will be installed in /usr/local + * Wellenreiter will be installed in /usr/local (sorry, no relocation possible yet) ===================== = Precompiled Binaries ===================== Precompiled binaries are available for the PDA-Version. Get them from http://opie.net.wox.org/wellenreiter/ -Sorry, RPMS are not yet available but will follow soon. +Sorry, no RPMS available. Volunteers? ===================== = Run ===================== * Configure your device by pressing the configure toolbutton (to the right) * Start Sniffing by pressing the execute toolbutton which will be enabled, if your device has been properly configured. ===================== = Credits = ===================== Wellenreiter II is (C) 2002-2003 M-M-M +Michael Lauer <mickeyl@handhelds.org> Max Moser <max@remote-exploit.org> Martin J. Muench <mjm@remote-exploit.org> -Michael Lauer <mickeyl@handhelds.org> ===================== = Links = ===================== Wellenreiter: http://www.wellenreiter.net Wellenreiter/Opie: http://opie.net.wox.org/wellenreiter Opie Project: http://opie.handhelds.org OpenZaurus Project: http://openzaurus.org diff --git a/noncore/net/wellenreiter/TODO b/noncore/net/wellenreiter/TODO index 983d160..a1d5bee 100644 --- a/noncore/net/wellenreiter/TODO +++ b/noncore/net/wellenreiter/TODO @@ -1,5 +1,4 @@ - save configuration settings -- GPS - beep over headphone / customizable - autoshow new nets - maybe in other color or more contrast diff --git a/noncore/net/wellenreiter/gui/configwindow.cpp b/noncore/net/wellenreiter/gui/configwindow.cpp index d255c6a..84d4c63 100644 --- a/noncore/net/wellenreiter/gui/configwindow.cpp +++ b/noncore/net/wellenreiter/gui/configwindow.cpp @@ -1,241 +1,304 @@ /********************************************************************** ** 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. ** **********************************************************************/ /* LOCAL */ #include "configwindow.h" #include "mainwindow.h" /* QT */ #include <qapplication.h> #include <qcheckbox.h> #include <qcombobox.h> #include <qfile.h> #include <qlineedit.h> #include <qlayout.h> #include <qmap.h> #include <qpushbutton.h> #include <qtoolbutton.h> #include <qspinbox.h> #include <qtextstream.h> /* OPIE */ #include <opie2/onetwork.h> +#include <opie2/oapplication.h> +#include <opie2/oconfig.h> WellenreiterConfigWindow* WellenreiterConfigWindow::_instance = 0; WellenreiterConfigWindow::WellenreiterConfigWindow( QWidget * parent, const char * name, WFlags f ) :WellenreiterConfigBase( parent, name, true, f ) { _devicetype[ "cisco" ] = DEVTYPE_CISCO; _devicetype[ "wlan-ng" ] = DEVTYPE_WLAN_NG; _devicetype[ "hostap" ] = DEVTYPE_HOSTAP; _devicetype[ "orinoco" ] = DEVTYPE_ORINOCO; _devicetype[ "<manual>" ] = DEVTYPE_MANUAL; _devicetype[ "<file>" ] = DEVTYPE_FILE; // gather possible interface names from ONetwork ONetwork* net = ONetwork::instance(); ONetwork::InterfaceIterator it = net->iterator(); while ( it.current() ) { if ( it.current()->isWireless() ) interfaceName->insertItem( it.current()->name() ); ++it; } if ( !load() ) // no configuration present { // try to guess device type QFile m( "/proc/modules" ); if ( m.open( IO_ReadOnly ) ) { int devicetype(0); QString line; QTextStream modules( &m ); while( !modules.atEnd() && !devicetype ) { modules >> line; if ( line.contains( "cisco" ) ) devicetype = DEVTYPE_CISCO; else if ( line.contains( "hostap" ) ) devicetype = DEVTYPE_HOSTAP; else if ( line.contains( "prism" ) ) devicetype = DEVTYPE_WLAN_NG; else if ( line.contains( "orinoco" ) ) devicetype = DEVTYPE_ORINOCO; } if ( devicetype ) { deviceType->setCurrentItem( devicetype ); _guess = devicetype; qDebug( "Wellenreiter: guessed device type to be #%d", devicetype ); } } } #ifdef Q_WS_X11 // We're on X11: adding an Ok-Button for the Dialog here QPushButton* okButton = new QPushButton( "ok", this ); okButton->show(); WellenreiterConfigBaseLayout->addWidget( okButton, 0, 3 ); //FIXME: rename this in configbase.ui connect( okButton, SIGNAL( clicked() ), this, SLOT( accept() ) ); #endif WellenreiterConfigWindow::_instance = this; connect( deviceType, SIGNAL( activated(int) ), this, SLOT( changedDeviceType(int) ) ); connect( getCaptureFileName, SIGNAL( clicked() ), this, SLOT( getCaptureFileNameClicked() ) ); // make the checkbox 'channelAll' control all other channels connect( channelAll, SIGNAL( stateChanged(int) ), this, SLOT( channelAllClicked(int) ) ); }; WellenreiterConfigWindow::~WellenreiterConfigWindow() { save(); } int WellenreiterConfigWindow::driverType() const { QString name = deviceType->currentText(); if ( _devicetype.contains( name ) ) { return _devicetype[name]; } else { return 0; } }; int WellenreiterConfigWindow::hoppingInterval() const { return hopInterval->cleanText().toInt(); } bool WellenreiterConfigWindow::usePrismHeader() const { - return prismHeader->isOn(); + return prismHeader->isChecked(); } bool WellenreiterConfigWindow::isChannelChecked( int channel ) const { switch ( channel ) { case 1: return channel1->isOn(); case 2: return channel2->isOn(); case 3: return channel3->isOn(); case 4: return channel4->isOn(); case 5: return channel5->isOn(); case 6: return channel6->isOn(); case 7: return channel7->isOn(); case 8: return channel8->isOn(); case 9: return channel9->isOn(); case 10: return channel10->isOn(); case 11: return channel11->isOn(); case 12: return channel12->isOn(); case 13: return channel13->isOn(); case 14: return channel14->isOn(); } } void WellenreiterConfigWindow::changedDeviceType(int t) { if ( t != DEVTYPE_FILE ) return; QString name = ( (WellenreiterMainWindow*) qApp->mainWidget() )->getFileName(false); if ( !name.isEmpty() && QFile::exists( name ) ) { interfaceName->insertItem( name ); interfaceName->setCurrentItem( interfaceName->count()-1 ); } else { deviceType->setCurrentItem( _guess ); } } void WellenreiterConfigWindow::getCaptureFileNameClicked() { QString name = ( (WellenreiterMainWindow*) qApp->mainWidget() )->getFileName(true); qDebug( "name = %s", (const char*) name ); if ( !name.isEmpty() ) { captureFileName->setText( name ); } } void WellenreiterConfigWindow::channelAllClicked(int state) { bool b = state; channel1->setChecked( b ); channel2->setChecked( b ); channel3->setChecked( b ); channel4->setChecked( b ); channel5->setChecked( b ); channel6->setChecked( b ); channel7->setChecked( b ); channel8->setChecked( b ); channel9->setChecked( b ); channel10->setChecked( b ); channel11->setChecked( b ); channel12->setChecked( b ); channel13->setChecked( b ); channel14->setChecked( b ); } bool WellenreiterConfigWindow::useGPS() const { return enableGPS->isChecked(); } const QString WellenreiterConfigWindow::gpsHost() const { return useGPS() ? gpsdHost->currentText() : QString::null; } int WellenreiterConfigWindow::gpsPort() const { bool ok; return useGPS() ? gpsdPort->value() : -1; } bool WellenreiterConfigWindow::load() { #ifdef Q_WS_X11 #warning Persistent Configuration not yet implemented for standalone X11 build return false; #else qDebug( "loading configuration settings..." ); - return true; + + /* This is dumb monkey typing stuff... We _need_ to do this automatically! */ + + OConfig* c = oApp->config(); + + c->setGroup( "Interface" ); + //interfaceName->setCurrentText( c->readEntry( "name" ) ); + //deviceType->setCurrentText( c->readEntry( "type", "<select>" ) ); + prismHeader->setChecked( c->readBoolEntry( "prism", false ) ); + hopChannels->setChecked( c->readBoolEntry( "hop", true ) ); + hopInterval->setValue( c->readNumEntry( "interval", 100 ) ); + adaptiveHopping->setChecked( c->readBoolEntry( "adaptive", true ) ); + + c->setGroup( "Capture" ); + captureFileName->setText( c->readEntry( "filename", "/tmp/capture" ) ); + + c->setGroup( "UI" ); + lookupVendor->setChecked( c->readBoolEntry( "lookupVendor", true ) ); + openTree->setChecked( c->readBoolEntry( "openTree", true ) ); + disablePM->setChecked( c->readBoolEntry( "disablePM", true ) ); + + c->setGroup( "GPS" ); + enableGPS->setChecked( c->readBoolEntry( "use", false ) ); +#if QT_VERSION < 300 + gpsdHost->insertItem( c->readEntry( "host", "localhost" ), 0 ); + gpsdHost->setCurrentItem( 0 ); +#else + gpsdHost->setCurrentText( c->readEntry( "host", "localhost" ) ); +#endif + gpsdPort->setValue( c->readNumEntry( "port", 2947 ) ); + startGPS->setChecked( c->readBoolEntry( "start", false ) ); + commandGPS->setText( c->readEntry( "command", "gpsd -p /dev/ttyS3 -s 57600" ) ); + + return false; // false = perform autodetection; true = use config settings #endif } void WellenreiterConfigWindow::save() { #ifdef Q_WS_X11 #warning Persistent Configuration not yet implemented for standalone X11 build #else qDebug( "saving configuration settings..." ); + + /* This is dumb monkey typing stuff... We _need_ to do this automatically! */ + + OConfig* c = oApp->config(); + + c->setGroup( "Interface" ); + c->writeEntry( "name", interfaceName->currentText() ); + c->writeEntry( "type", deviceType->currentText() ); + c->writeEntry( "prism", prismHeader->isChecked() ); + c->writeEntry( "hop", hopChannels->isChecked() ); + c->writeEntry( "interval", hopInterval->value() ); + c->writeEntry( "adaptive", adaptiveHopping->isChecked() ); + + c->setGroup( "Capture" ); + c->writeEntry( "filename", captureFileName->text() ); + + c->setGroup( "UI" ); + c->writeEntry( "lookupVendor", lookupVendor->isChecked() ); + c->writeEntry( "openTree", openTree->isChecked() ); + c->writeEntry( "disablePM", disablePM->isChecked() ); + + c->setGroup( "GPS" ); + c->writeEntry( "use", enableGPS->isChecked() ); + c->writeEntry( "host", gpsdHost->currentText() ); + c->writeEntry( "port", gpsdPort->value() ); + c->writeEntry( "start", startGPS->isChecked() ); + c->writeEntry( "command", commandGPS->text() ); + #endif } diff --git a/noncore/net/wellenreiter/opie-wellenreiter.control b/noncore/net/wellenreiter/opie-wellenreiter.control index 95729e3..2cb0d2d 100644 --- a/noncore/net/wellenreiter/opie-wellenreiter.control +++ b/noncore/net/wellenreiter/opie-wellenreiter.control @@ -1,10 +1,10 @@ Package: opie-wellenreiter Files: plugins/application/libwellenreiter.so* bin/wellenreiter pics/wellenreiter apps/Applications/wellenreiter.desktop Priority: optional Section: opie/applications Maintainer: Michael 'Mickey' Lauer <mickeyl@handhelds.org> Architecture: arm -Version: 0.9.9-$SUB_VERSION -Depends: task-opie-minimal, libpcap0 (0.7.2), libopie2 (1.8.1) +Version: 1.0.1-$SUB_VERSION +Depends: libqpe, libpcap0 (0.7.2), libopie2 (1.8.1) Description: A WaveLAN Network Monitor A WaveLAN Network Monitor/Sniffer for the Opie Environment. |