author | mickeyl <mickeyl> | 2002-12-31 14:59:35 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2002-12-31 14:59:35 (UTC) |
commit | 76ec681931f01609969b92e75908418d9e8e92d5 (patch) (side-by-side diff) | |
tree | 8230634998f17c66ebb4eb1acd82112cdb77c944 | |
parent | 3f35e5918b5f508139e189d2428d01d6c2933a50 (diff) | |
download | opie-76ec681931f01609969b92e75908418d9e8e92d5.zip opie-76ec681931f01609969b92e75908418d9e8e92d5.tar.gz opie-76ec681931f01609969b92e75908418d9e8e92d5.tar.bz2 |
- catch with latest changes in libwellenreiter
- GUI now identifies and displays device manufacturers
- GUI now displays the number of received beacons for each device
-rw-r--r-- | noncore/net/wellenreiter/gui/manufacturers.cpp | 4 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/manufacturers.h | 2 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/scanlist.cpp | 36 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/scanlist.h | 7 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/scanlistitem.cpp | 19 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/scanlistitem.h | 8 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.cpp | 27 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.h | 19 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiterbase.cpp | 18 | ||||
-rw-r--r-- | noncore/net/wellenreiter/libwellenreiter/libwellenreiter.pro | 2 |
10 files changed, 109 insertions, 33 deletions
diff --git a/noncore/net/wellenreiter/gui/manufacturers.cpp b/noncore/net/wellenreiter/gui/manufacturers.cpp index d235989..dad2753 100644 --- a/noncore/net/wellenreiter/gui/manufacturers.cpp +++ b/noncore/net/wellenreiter/gui/manufacturers.cpp @@ -42,3 +42,5 @@ ManufacturerDB::ManufacturerDB( const QString& filename ) manu = s.readLine(); + #ifdef DEBUG qDebug( "ManufacturerDB: read pair %s, %s", (const char*) addr, (const char*) manu ); + #endif manufacturers.insert( addr, manu ); @@ -54,3 +56,3 @@ ManufacturerDB::~ManufacturerDB() -QString ManufacturerDB::lookup( const QString& macaddr ) +const QString& ManufacturerDB::lookup( const QString& macaddr ) const { diff --git a/noncore/net/wellenreiter/gui/manufacturers.h b/noncore/net/wellenreiter/gui/manufacturers.h index d69977a..67afe21 100644 --- a/noncore/net/wellenreiter/gui/manufacturers.h +++ b/noncore/net/wellenreiter/gui/manufacturers.h @@ -27,3 +27,3 @@ class ManufacturerDB virtual ~ManufacturerDB(); - QString lookup( const QString& macaddr ); + const QString& lookup( const QString& macaddr ) const; diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp index 6d032aa..ab19701 100644 --- a/noncore/net/wellenreiter/gui/scanlist.cpp +++ b/noncore/net/wellenreiter/gui/scanlist.cpp @@ -20,5 +20,27 @@ +#include "manufacturers.h" + MScanListView::MScanListView( QWidget* parent, const char* name ) - :QListView( parent, name ) + :QListView( parent, name ), _manufacturerdb( 0 ) { + + setFrameShape( QListView::StyledPanel ); + setFrameShadow( QListView::Sunken ); + + addColumn( tr( "Net/Station" ) ); + setColumnAlignment( 0, AlignLeft || AlignVCenter ); + addColumn( tr( "B" ) ); + setColumnAlignment( 1, AlignCenter ); + addColumn( tr( "AP" ) ); + setColumnAlignment( 2, AlignCenter ); + addColumn( tr( "Chn" ) ); + setColumnAlignment( 3, AlignCenter ); + addColumn( tr( "W" ) ); + setColumnAlignment( 4, AlignCenter ); + addColumn( tr( "T" ) ); + setColumnAlignment( 5, AlignCenter ); + addColumn( tr( "Manufacturer" ) ); + setColumnAlignment( 6, AlignCenter ); + setRootIsDecorated( true ); + setAllColumnsShowFocus( true ); }; @@ -29,2 +51,7 @@ MScanListView::~MScanListView() +void MScanListView::setManufacturerDB( ManufacturerDB* manufacturerdb ) +{ + _manufacturerdb = manufacturerdb; +} + void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ) @@ -86,3 +113,6 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo // we have already seen this item, it's a dupe + #ifdef DEBUG qDebug( "%s is a dupe - ignoring...", (const char*) macaddr ); + #endif + item->receivedBeacon(); return; @@ -104,3 +134,5 @@ void MScanListView::addNewItem( QString type, QString essid, QString macaddr, bo - new MScanListItem( network, type, "", macaddr, wep, channel, signal ); + MScanListItem* station = new MScanListItem( network, type, "", macaddr, wep, channel, signal ); + if ( _manufacturerdb ) + station->setManufacturer( _manufacturerdb->lookup( macaddr ) ); diff --git a/noncore/net/wellenreiter/gui/scanlist.h b/noncore/net/wellenreiter/gui/scanlist.h index 6fe6930..9a35a82 100644 --- a/noncore/net/wellenreiter/gui/scanlist.h +++ b/noncore/net/wellenreiter/gui/scanlist.h @@ -22,2 +22,4 @@ class QString; +class ManufacturerDB; + class MScanListView: public QListView @@ -30,4 +32,9 @@ class MScanListView: public QListView + void setManufacturerDB( ManufacturerDB* manufacturerdb ); + public slots: void addNewItem( QString type, QString essid, QString macaddr, bool wep, int channel, int signal ); + + private: + ManufacturerDB* _manufacturerdb; diff --git a/noncore/net/wellenreiter/gui/scanlistitem.cpp b/noncore/net/wellenreiter/gui/scanlistitem.cpp index f4b43a6..15aef0c 100644 --- a/noncore/net/wellenreiter/gui/scanlistitem.cpp +++ b/noncore/net/wellenreiter/gui/scanlistitem.cpp @@ -32,2 +32,3 @@ const int col_wep = 4; const int col_traffic = 5; +const int col_manuf = 6; @@ -35,3 +36,5 @@ MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QS bool wep, int channel, int signal ) - :QListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ) + :QListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ), + _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ), + _channel( channel ), _signal( signal ), _beacons( 0 ) { @@ -79 +82,15 @@ void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, +void MScanListItem::setManufacturer( const QString& manufacturer ) +{ + setText( col_manuf, manufacturer ); +} + +void MScanListItem::receivedBeacon() +{ + _beacons++; + #ifdef DEBUG + qDebug( "MScanListItem %s: received beacon #%d", (const char*) _macaddr, _beacons ); + #endif + setText( col_sig, QString::number( _beacons ) ); +} + diff --git a/noncore/net/wellenreiter/gui/scanlistitem.h b/noncore/net/wellenreiter/gui/scanlistitem.h index 47a5a4e..c3c6255 100644 --- a/noncore/net/wellenreiter/gui/scanlistitem.h +++ b/noncore/net/wellenreiter/gui/scanlistitem.h @@ -59,6 +59,8 @@ class MScanListItem: public QListViewItem int signal() { return _signal; }; - int received() { return _received; }; + int beacons() { return _beacons; }; void setSignal( int signal ) { /* TODO */ }; - void incReceived() { _received++; }; + void receivedBeacon(); + + void setManufacturer( const QString& manufacturer ); @@ -71,3 +73,3 @@ class MScanListItem: public QListViewItem int _signal; - int _received; + int _beacons; diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp index 9068e3a..b22c5cc 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.cpp +++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp @@ -26,2 +26,3 @@ #ifdef QWS +#include <qpe/qpeapplication.h> #include <qpe/global.h> @@ -57,8 +58,9 @@ using namespace Opie; +#include <daemon/source/config.hh> +#include <libwellenreiter/source/wl_types.hh> #include <libwellenreiter/source/wl_sock.hh> #include <libwellenreiter/source/wl_proto.hh> -#include <daemon/source/config.hh> Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl ) - : WellenreiterBase( parent, name, fl ), daemonRunning( false ) + : WellenreiterBase( parent, name, fl ), daemonRunning( false ), manufacturerdb( 0 ) { @@ -71,3 +73,3 @@ Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl ) #ifdef QWS - manufile.sprintf( "%s/share/wellenreiter/manufacturers.dat", (const char*) qApp.qpeDir() ); + manufile.sprintf( "%s/share/wellenreiter/manufacturers.dat", (const char*) QPEApplication::qpeDir() ); #else @@ -94,3 +96,4 @@ Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl ) - daemon_fd = wl_setupsock( GUIADDR, GUIPORT ); + // struct sockaddr_in sockaddr; + daemon_fd = wl_setupsock( GUIADDR, GUIPORT, sockaddr ); if ( daemon_fd == -1 ) @@ -113,2 +116,5 @@ Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl ) netview->setColumnWidthMode( 1, QListView::Manual ); + + if ( manufacturerdb ) + netview->setManufacturerDB( manufacturerdb ); @@ -129,4 +135,6 @@ void Wellenreiter::handleMessage() - char buffer[10000]; - memset( &buffer, 0, sizeof( buffer ) ); + /*char buffer[10000]; + memset( &buffer, 0, sizeof( buffer ) );*/ + + char buffer[WL_SOCKBUF]; @@ -134,2 +142,4 @@ void Wellenreiter::handleMessage() + /* + struct sockaddr from; @@ -138,4 +148,7 @@ void Wellenreiter::handleMessage() int result = recvfrom( daemon_fd, &buffer, 8192, MSG_WAITALL, &from, &len ); - qDebug( "received %d from recv [%d bytes]", result, len ); + + */ + + int result = wl_recv( &daemon_fd, sockaddr, (char*) &buffer, WL_SOCKBUF ); diff --git a/noncore/net/wellenreiter/gui/wellenreiter.h b/noncore/net/wellenreiter/gui/wellenreiter.h index 9715983..0ddc72c 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.h +++ b/noncore/net/wellenreiter/gui/wellenreiter.h @@ -25,2 +25,18 @@ using namespace Opie; +// ugly... not here! + +#include <assert.h> +#include <errno.h> +#include <unistd.h> +#include <string.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <stdlib.h> +#include <fcntl.h> +#include <daemon/source/config.hh> +#include <libwellenreiter/source/wl_types.hh> +#include <libwellenreiter/source/wl_sock.hh> +#include <libwellenreiter/source/wl_proto.hh> + + class QTimerEvent; @@ -53,2 +69,3 @@ private: ManufacturerDB* manufacturerdb; + struct sockaddr_in sockaddr; @@ -58,2 +75,4 @@ private: + + #endif diff --git a/noncore/net/wellenreiter/gui/wellenreiterbase.cpp b/noncore/net/wellenreiter/gui/wellenreiterbase.cpp index d6b9891..a93c684 100644 --- a/noncore/net/wellenreiter/gui/wellenreiterbase.cpp +++ b/noncore/net/wellenreiter/gui/wellenreiterbase.cpp @@ -74,19 +74,3 @@ WellenreiterBase::WellenreiterBase( QWidget* parent, const char* name, WFlags f - netview = new MScanListView( ap ); - netview->addColumn( tr( "SSID" ) ); - netview->setColumnAlignment( 0, AlignLeft || AlignVCenter ); - netview->addColumn( tr( "Sig" ) ); - netview->setColumnAlignment( 1, AlignCenter ); - netview->addColumn( tr( "AP" ) ); - netview->setColumnAlignment( 2, AlignCenter ); - netview->addColumn( tr( "Chn" ) ); - netview->setColumnAlignment( 3, AlignCenter ); - netview->addColumn( tr( "W" ) ); - netview->setColumnAlignment( 4, AlignCenter ); - netview->addColumn( tr( "T" ) ); - netview->setColumnAlignment( 5, AlignCenter ); - - netview->setFrameShape( QListView::StyledPanel ); - netview->setFrameShadow( QListView::Sunken ); - netview->setRootIsDecorated( TRUE ); + netview = new MScanListView( ap ); apLayout->addWidget( netview ); diff --git a/noncore/net/wellenreiter/libwellenreiter/libwellenreiter.pro b/noncore/net/wellenreiter/libwellenreiter/libwellenreiter.pro index 9cf717e..8a6ed36 100644 --- a/noncore/net/wellenreiter/libwellenreiter/libwellenreiter.pro +++ b/noncore/net/wellenreiter/libwellenreiter/libwellenreiter.pro @@ -3,3 +3,3 @@ CONFIG = warn_on debug VERSION = 0.2 -HEADERS = source/cardmode.hh source/wl_log.hh source/wl_proto.hh source/sniff.hh source/wl_sock.hh +HEADERS = source/cardmode.hh source/wl_log.hh source/wl_proto.hh source/sniff.hh source/wl_sock.hh source/wl_types.hh SOURCES = source/cardmode.cc source/wl_log.cc source/wl_proto.cc source/sniff.cc source/wl_sock.cc |