summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (show whitespace changes)
-rw-r--r--noncore/net/wellenreiter/README12
-rw-r--r--noncore/net/wellenreiter/TODO1
-rw-r--r--noncore/net/wellenreiter/gui/configwindow.cpp67
-rw-r--r--noncore/net/wellenreiter/opie-wellenreiter.control4
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.