Diffstat (limited to 'noncore/net/wellenreiter/gui/wellenreiter.cpp') (more/less context) (show whitespace changes)
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.cpp | 38 |
1 files changed, 32 insertions, 6 deletions
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp index 96733ff..c03debb 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.cpp +++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp @@ -17,2 +17,3 @@ +#include "gps.h" #include "wellenreiter.h" @@ -87,2 +88,4 @@ Wellenreiter::Wellenreiter( QWidget* parent ) pcap = new OPacketCapturer(); + + gps = new GPS( this ); } @@ -169,2 +172,10 @@ void Wellenreiter::handleBeacon( OPacket* p, OWaveLanManagementPacket* beacon ) OWaveLanPacket* header = static_cast<OWaveLanPacket*>( p->child( "802.11" ) ); + + if ( configwindow->enableGPS->isChecked() ) + { + qDebug( "Wellenreiter::gathering GPS data..." ); + float lat = gps->latitude(); + qDebug( "Wellenreiter::GPS data received is ( %f , %f )", lat, 0.0 ); + } + netView()->addNewItem( type, essid, header->macAddress2(), beacon->canPrivacy(), channel, 0 ); @@ -240,3 +251,3 @@ bool Wellenreiter::checkDumpPacket( OPacket* p ) // if so, do what the user requested (protocolAction), e.g. pass or discard - if ( !configwindow->writeCaptureFile->isOn() ) + if ( !configwindow->writeCaptureFile->isChecked() ) return false; @@ -359,3 +370,6 @@ void Wellenreiter::startClicked() ONetwork* net = ONetwork::instance(); - iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface )); + + // TODO: check if interface is wireless and support sniffing for non-wireless interfaces + + iface = static_cast<OWirelessNetworkInterface*>(net->interface( interface )); // fails if network is not wireless! @@ -391,4 +405,5 @@ void Wellenreiter::startClicked() { - QMessageBox::warning( this, "Wellenreiter II", - tr( "Can't set interface '%1'\ninto monitor mode:\n" ).arg( iface->name() ) + strerror( errno ) ); + if ( QMessageBox::warning( this, "Wellenreiter II", + tr( "Can't set interface '%1'\ninto monitor mode:\n" ).arg( iface->name() ) + strerror( errno ) + + tr( "\nContinue with limited functionality?" ), QMessageBox::Yes, QMessageBox::No ) == QMessageBox::No ) return; @@ -397,2 +412,9 @@ void Wellenreiter::startClicked() + // open GPS device + if ( configwindow->enableGPS->isChecked() ) + { + qDebug( "Wellenreiter:GPS enabled @ %s:%d", (const char*) configwindow->gpsdHost->currentText(), configwindow->gpsdPort->value() ); + gps->open( configwindow->gpsdHost->currentText(), configwindow->gpsdPort->value() ); + } + // open pcap and start sniffing @@ -402,5 +424,6 @@ void Wellenreiter::startClicked() - if ( configwindow->writeCaptureFile->isOn() ) + if ( configwindow->writeCaptureFile->isChecked() ) { QString dumpname( configwindow->captureFileName->text() ); + if ( dumpname.isEmpty() ) dumpname = "captureFile"; dumpname.append( '-' ); @@ -432,3 +455,6 @@ void Wellenreiter::startClicked() if ( cardtype != DEVTYPE_FILE ) - iface->setChannelHopping( 1000 ); //use interval from config window + { + logwindow->log( QString().sprintf( "(i) Starting channel hopper (d=%d ms)", configwindow->hopInterval->value() ) ); + iface->setChannelHopping( configwindow->hopInterval->value() ); //use interval from config window + } |