summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/gui/wellenreiter.cpp
authormickeyl <mickeyl>2004-01-08 17:26:01 (UTC)
committer mickeyl <mickeyl>2004-01-08 17:26:01 (UTC)
commitc0a0d53fb92f8a1723c57580a5fd0ade66574ec4 (patch) (side-by-side diff)
tree0d1cb64ad905b81a04bd8c45cada4feda3c122f6 /noncore/net/wellenreiter/gui/wellenreiter.cpp
parent9634c11f8ea28af19a4afc6821c68cdc2b3e7c8a (diff)
downloadopie-c0a0d53fb92f8a1723c57580a5fd0ade66574ec4.zip
opie-c0a0d53fb92f8a1723c57580a5fd0ade66574ec4.tar.gz
opie-c0a0d53fb92f8a1723c57580a5fd0ade66574ec4.tar.bz2
Display stations sending out named ProbeRequests.
Wellenreiter II reaches a critical point in its lifetime, i.e. the scanlist and wellenreiter classes are the mainly still as they were during the early prototype phrase. It's time to rewrite the major UI core and start with giving it something like a design (D'Oh!)...
Diffstat (limited to 'noncore/net/wellenreiter/gui/wellenreiter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp39
1 files changed, 36 insertions, 3 deletions
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 25632f3..cd74bed 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -161,10 +161,43 @@ void Wellenreiter::handleNotification( OPacket* p )
void Wellenreiter::handleManagementFrame( OPacket* p, OWaveLanManagementPacket* manage )
{
- if ( manage->managementType() != "Beacon" ) return; // only handling beacons at that time
+ if ( manage->managementType() == "Beacon" ) handleManagementFrameBeacon( p, manage );
+ else if ( manage->managementType() == "ProbeRequest" ) handleManagementFrameProbeRequest( p, manage );
+ else if ( manage->managementType() == "ProbeResponse" ) handleManagementFrameProbeResponse( p, manage );
+ else qWarning( "Wellenreiter::handleManagementFrame(): '%s' - please handle me!", (const char*) manage->managementType() );
+}
- OWaveLanManagementPacket* beacon = manage;
+void Wellenreiter::handleManagementFrameProbeRequest( OPacket* p, OWaveLanManagementPacket* request )
+{
+ OWaveLanManagementSSID* ssid = static_cast<OWaveLanManagementSSID*>( p->child( "802.11 SSID" ) );
+ QString essid = ssid ? ssid->ID( true /* decloak */ ) : QString("<unknown>");
+ OWaveLanManagementDS* ds = static_cast<OWaveLanManagementDS*>( p->child( "802.11 DS" ) );
+ int channel = ds ? ds->channel() : -1;
+ OWaveLanPacket* header = static_cast<OWaveLanPacket*>( p->child( "802.11" ) );
+
+ GpsLocation loc( -111, -111 );
+ if ( configwindow->enableGPS->isChecked() )
+ {
+ // TODO: add check if GPS is working!?
+ qDebug( "Wellenreiter::gathering GPS data..." );
+ loc = gps->position();
+ qDebug( "Wellenreiter::GPS data received is ( %f , %f ) - dms string = '%s'", loc.latitude(), loc.longitude(), loc.dmsPosition().latin1() );
+ }
+
+ if ( essid.length() )
+ netView()->addNewItem( "adhoc", essid, header->macAddress2(), false /* should check FrameControl field */, -1, 0, loc, true /* only probed */ );
+ qDebug( "Wellenreiter::invalid frame [possibly noise] detected!" );
+}
+
+
+void Wellenreiter::handleManagementFrameProbeResponse( OPacket* p, OWaveLanManagementPacket* response )
+{
+}
+
+
+void Wellenreiter::handleManagementFrameBeacon( OPacket* p, OWaveLanManagementPacket* beacon )
+{
QString type;
if ( beacon->canIBSS() )
{
@@ -216,7 +249,7 @@ void Wellenreiter::handleControlFrame( OPacket* p, OWaveLanControlPacket* contro
if ( control->controlType() == "Acknowledge" )
{
- netView()->addNewItem( "adhoc", "???", header->macAddress1(), false, -1, 0, GpsLocation( -111, -111 ) );
+ netView()->addNewItem( "adhoc", "<unknown>", header->macAddress1(), false, -1, 0, GpsLocation( -111, -111 ) );
}
else
{