summaryrefslogtreecommitdiff
path: root/noncore/net/wellenreiter/gui/wellenreiter.cpp
Side-by-side diff
Diffstat (limited to 'noncore/net/wellenreiter/gui/wellenreiter.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/wellenreiter/gui/wellenreiter.cpp41
1 files changed, 34 insertions, 7 deletions
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp
index 5575d6e..45d7142 100644
--- a/noncore/net/wellenreiter/gui/wellenreiter.cpp
+++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp
@@ -161,4 +161,8 @@ void Wellenreiter::handleNotification( OPacket* p )
-void Wellenreiter::handleBeacon( OPacket* p, OWaveLanManagementPacket* beacon )
+void Wellenreiter::handleManagementFrame( OPacket* p, OWaveLanManagementPacket* manage )
{
+ if ( manage->managementType() != "Beacon" ) return; // only handling beacons at that time
+
+ OWaveLanManagementPacket* beacon = manage;
+
QString type;
@@ -185,3 +189,3 @@ void Wellenreiter::handleBeacon( OPacket* p, OWaveLanManagementPacket* beacon )
- GpsLocation loc( 0, 0 );
+ GpsLocation loc( -111.111, -111.111 );
if ( configwindow->enableGPS->isChecked() )
@@ -208,2 +212,17 @@ void Wellenreiter::handleBeacon( OPacket* p, OWaveLanManagementPacket* beacon )
+void Wellenreiter::handleControlFrame( OPacket* p, OWaveLanControlPacket* control )
+{
+ OWaveLanPacket* header = static_cast<OWaveLanPacket*>( p->child( "802.11" ) );
+
+ if ( control->controlType() == "Acknowledge" )
+ {
+ netView()->addNewItem( "adhoc", "???", header->macAddress1(), false, -1, 0, GpsLocation( -111.111, -111.111 ) );
+ }
+ else
+ {
+ qDebug( "Wellenreiter::handleControlFrame - please handle %s in a future version! :D", (const char*) control->controlType() );
+ }
+}
+
+
void Wellenreiter::handleWlanData( OPacket* p, OWaveLanDataPacket* data, OMacAddress& from, OMacAddress& to )
@@ -243,3 +262,3 @@ void Wellenreiter::handleEthernetData( OPacket* p, OEthernetPacket* data, OMacAd
- netView()->addNewItem( "station", "<wired>", from, false, -1, 0, GpsLocation( 0, 0 ) );
+ netView()->addNewItem( "station", "<wired>", from, false, -1, 0, GpsLocation( -111.111, -111.111 ) );
}
@@ -342,7 +361,15 @@ void Wellenreiter::receivePacket( OPacket* p )
- // check if we received a beacon frame
- OWaveLanManagementPacket* beacon = static_cast<OWaveLanManagementPacket*>( childIfToParse( p, "802.11 Management" ) );
- if ( beacon && beacon->managementType() == "Beacon" )
+ // check for a management frame
+ OWaveLanManagementPacket* manage = static_cast<OWaveLanManagementPacket*>( childIfToParse( p, "802.11 Management" ) );
+ if ( manage )
+ {
+ handleManagementFrame( p, manage );
+ return;
+ }
+
+ // check for a control frame
+ OWaveLanControlPacket* control = static_cast<OWaveLanControlPacket*>( childIfToParse( p, "802.11 Control" ) );
+ if ( control )
{
- handleBeacon( p, beacon );
+ handleControlFrame( p, control );
return;