From b7682f160fafe69bfd47dcfb1c88f2ac2b1afaf5 Mon Sep 17 00:00:00 2001 From: mickeyl Date: Sat, 05 Apr 2003 23:08:46 +0000 Subject: - correct beacon bug (off-by-one) - display hex dump per packet in hex window - allow saving hex window contents --- (limited to 'noncore') diff --git a/noncore/net/wellenreiter/gui/hexwindow.cpp b/noncore/net/wellenreiter/gui/hexwindow.cpp index a3022f4..8b17285 100644 --- a/noncore/net/wellenreiter/gui/hexwindow.cpp +++ b/noncore/net/wellenreiter/gui/hexwindow.cpp @@ -20,9 +20,10 @@ MHexWindow::MHexWindow( QWidget * parent, const char * name, WFlags f ) :QVBox( parent, name, f ) { ledit = new QMultiLineEdit( this ); - + ledit->setFont( QFont( "fixed", 10 ) ); + // FIXME: Set properties( font, read-only, etc...) - + }; void MHexWindow::log( QString text ) @@ -32,6 +33,11 @@ void MHexWindow::log( QString text ) }; +const QString MHexWindow::getLog() const +{ + return ledit->text(); +} + void MHexWindow::clear() { ledit->clear(); diff --git a/noncore/net/wellenreiter/gui/hexwindow.h b/noncore/net/wellenreiter/gui/hexwindow.h index 2618b8c..f2f870c 100644 --- a/noncore/net/wellenreiter/gui/hexwindow.h +++ b/noncore/net/wellenreiter/gui/hexwindow.h @@ -28,6 +28,7 @@ class MHexWindow: public QVBox MHexWindow( QWidget * parent = 0, const char * name = "MHexWindow", WFlags f = 0 ); void log( QString text ); + const QString getLog() const; void clear(); protected: diff --git a/noncore/net/wellenreiter/gui/mainwindow.cpp b/noncore/net/wellenreiter/gui/mainwindow.cpp index 8e0164f..69d2b3a 100644 --- a/noncore/net/wellenreiter/gui/mainwindow.cpp +++ b/noncore/net/wellenreiter/gui/mainwindow.cpp @@ -107,7 +107,8 @@ WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * n QPopupMenu* fileSave = new QPopupMenu( mb ); fileSave->insertItem( "&Session...", this, SLOT( fileSaveSession() ) ); - fileSave->insertItem( "&Log...", this, SLOT( fileSaveLog() ) ); + fileSave->insertItem( "&Text Log...", this, SLOT( fileSaveLog() ) ); + fileSave->insertItem( "&Hex Log...", this, SLOT( fileSaveHex() ) ); QPopupMenu* fileLoad = new QPopupMenu( mb ); fileLoad->insertItem( "&Session...", this, SLOT( fileLoadSession() ) ); @@ -280,6 +281,26 @@ void WellenreiterMainWindow::fileSaveSession() } } +void WellenreiterMainWindow::fileSaveHex() +{ + QString fname = getFileName( true ); + if ( !fname.isEmpty() ) + { + QFile f( fname ); + if ( f.open(IO_WriteOnly) ) + { + QTextStream t( &f ); + t << mw->hexWindow()->getLog(); + f.close(); + qDebug( "Saved hex log to file '%s'", (const char*) fname ); + } + else + { + qDebug( "Problem saving hex log to file '%s'", (const char*) fname ); + } + } +} + void WellenreiterMainWindow::fileLoadSession() { QString fname = getFileName( false ); diff --git a/noncore/net/wellenreiter/gui/mainwindow.h b/noncore/net/wellenreiter/gui/mainwindow.h index e06a60c..1b08c5b 100644 --- a/noncore/net/wellenreiter/gui/mainwindow.h +++ b/noncore/net/wellenreiter/gui/mainwindow.h @@ -53,6 +53,7 @@ class WellenreiterMainWindow: public QMainWindow void showConfigure(); void demoAddStations(); void fileSaveLog(); + void fileSaveHex(); void fileSaveSession(); void fileLoadSession(); void fileNew(); diff --git a/noncore/net/wellenreiter/gui/scanlist.cpp b/noncore/net/wellenreiter/gui/scanlist.cpp index a006a3c..34c69f5 100644 --- a/noncore/net/wellenreiter/gui/scanlist.cpp +++ b/noncore/net/wellenreiter/gui/scanlist.cpp @@ -194,7 +194,7 @@ MScanListItem::MScanListItem( QListView* parent, QString type, QString essid, QS bool wep, int channel, int signal ) :OListViewItem( parent, essid, QString::null, macaddr, QString::null, QString::null ), _type( type ), _essid( essid ), _macaddr( macaddr ), _wep( wep ), - _channel( channel ), _signal( signal ), _beacons( 0 ) + _channel( channel ), _signal( signal ), _beacons( 1 ) { qDebug( "creating scanlist item" ); if ( WellenreiterConfigWindow::instance() && type == "networks" ) @@ -274,7 +274,7 @@ void MScanListItem::decorateItem( QString type, QString essid, QString macaddr, _essid = essid; _macaddr = macaddr; _channel = channel; - _beacons = 0; + _beacons = 1; _signal = 0; } diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp index d80a6e6..aa33158 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.cpp +++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp @@ -110,6 +110,8 @@ void Wellenreiter::setConfigWindow( WellenreiterConfigWindow* cw ) void Wellenreiter::receivePacket(OPacket* p) { + hexWindow()->log( p->dump( 8 ) ); + // check if we received a beacon frame // static_cast is justified here OWaveLanManagementPacket* beacon = static_cast( p->child( "802.11 Management" ) ); @@ -161,6 +163,7 @@ void Wellenreiter::startStopClicked() iface->setPromiscuousMode( false ); system( "cardctl reset; sleep 1" ); //FIXME: Use OProcess + logwindow->log( "(i) Stopped Scanning." ); // message the user QMessageBox::information( this, "Wellenreiter II", "Your wireless card\nshould now be usable again." ); @@ -222,7 +225,7 @@ void Wellenreiter::startStopClicked() // connect connect( pcap, SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) ); - logwindow->log( "(i) Daemon has been started." ); + logwindow->log( "(i) Started Scanning." ); #ifdef QWS oApp->setTitle( "Scanning ..." ); #else -- cgit v0.9.0.2