From 78c60031b506b85dc20bd555d83486aeb831bf38 Mon Sep 17 00:00:00 2001 From: mickeyl Date: Thu, 08 May 2003 13:37:06 +0000 Subject: - add more sanity checks and verbose error messages - try to restart dhcp client after having killed it before --- (limited to 'noncore/net') diff --git a/noncore/net/wellenreiter/gui/configbase.ui b/noncore/net/wellenreiter/gui/configbase.ui index 422826a..590ca92 100644 --- a/noncore/net/wellenreiter/gui/configbase.ui +++ b/noncore/net/wellenreiter/gui/configbase.ui @@ -113,6 +113,10 @@ GroupBox1 + enabled + false + + title Scan on channel @@ -459,6 +463,10 @@ adaptiveHopping + enabled + false + + text Use Adaptive(TM) Hop Scheme diff --git a/noncore/net/wellenreiter/gui/main.cpp b/noncore/net/wellenreiter/gui/main.cpp index 96ebb3f..55a5260 100644 --- a/noncore/net/wellenreiter/gui/main.cpp +++ b/noncore/net/wellenreiter/gui/main.cpp @@ -46,6 +46,7 @@ int main( int argc, char **argv ) a.showMainWidget( w ); #else a.setMainWidget( w ); + w->setCaption( "Wellenreiter II" ); w->show(); #endif @@ -65,6 +66,8 @@ int main( int argc, char **argv ) // dhcp check - NOT HERE! This really belongs as a static member to OProcess // and I want to call it like that: if ( OProcess::isRunning( QString& ) ) ... + static int killed = false; + QString line; QDir d = QDir( "/proc" ); QStringList dirs = d.entryList( QDir::Dirs ); @@ -89,11 +92,23 @@ int main( int argc, char **argv ) if ( result == QMessageBox::Yes ) { if ( -1 == ::kill( (*it).toInt(), SIGTERM ) ) - qWarning( "Wellenreiter: can't kill process (%s)", result, strerror( errno ) ); + qWarning( "Wellenreiter: can't kill process #%d (%s)", result, strerror( errno ) ); + else + killed = true; } } a.exec(); + + if ( killed ) + { + result = QMessageBox::warning( w, " - Wellenreiter II - (dhcp)", QObject::tr( "Restart your dhcp client?" ), QMessageBox::Yes, QMessageBox::No ); + if ( result == QMessageBox::Yes ) + { + system( QString().sprintf( "dhclient &; udhcpcd &; dhcpcd &" ) ); + } + } + delete w; return 0; } diff --git a/noncore/net/wellenreiter/gui/mainwindow.cpp b/noncore/net/wellenreiter/gui/mainwindow.cpp index 7241f7a..3e36f5b 100644 --- a/noncore/net/wellenreiter/gui/mainwindow.cpp +++ b/noncore/net/wellenreiter/gui/mainwindow.cpp @@ -135,8 +135,9 @@ WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * n //id = mb->insertItem( tr( "&View" ), view ); //mb->setItemEnabled( id, false ); id = mb->insertItem( tr( "&Sniffer" ), sniffer ); - //id = mb->insertItem( tr( "&Demo" ), demo ); - //mb->setItemEnabled( id, true ); + + id = mb->insertItem( tr( "&Demo" ), demo ); + mb->setItemEnabled( id, true ); #ifdef QWS mb->insertItem( startButton ); @@ -215,6 +216,8 @@ WellenreiterMainWindow::~WellenreiterMainWindow() void WellenreiterMainWindow::demoAddStations() { + mw = 0; + mw->netView()->addNewItem( "managed", "Vanille", "00:00:20:EF:A6:43", true, 6, 80 ); mw->netView()->addNewItem( "managed", "Vanille", "00:30:6D:EF:A6:23", true, 11, 10 ); mw->netView()->addNewItem( "adhoc", "ELAN", "00:A0:F8:E7:16:22", false, 3, 10 ); @@ -359,3 +362,5 @@ void WellenreiterMainWindow::closeEvent( QCloseEvent* e ) QMainWindow::closeEvent( e ); } } + + diff --git a/noncore/net/wellenreiter/gui/protolistview.cpp b/noncore/net/wellenreiter/gui/protolistview.cpp index f4b45d0..daca095 100644 --- a/noncore/net/wellenreiter/gui/protolistview.cpp +++ b/noncore/net/wellenreiter/gui/protolistview.cpp @@ -84,7 +84,7 @@ void ProtocolListView::addProtocol( const QString& name ) #ifdef QWS combo->setFixedWidth( 75 ); #endif - combo->insertItem( "Ignore" ); + combo->insertItem( "Pass" ); combo->insertItem( "Discard!" ); combo->insertItem( "TouchSound" ); combo->insertItem( "AlarmSound" ); diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp index 965f6b0..4257be1 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.cpp +++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp @@ -403,12 +403,19 @@ void Wellenreiter::startClicked() } // configure device - ONetwork* net = ONetwork::instance(); iface = static_cast(net->interface( interface )); - // set monitor mode + // bring device UP + iface->setUp( true ); + if ( !iface->isUp() ) + { + QMessageBox::warning( this, "Wellenreiter II", + tr( "Can't bring interface '%1' up:\n" ).arg( iface->name() ) + strerror( errno ) ); + return; + } + // set monitor mode bool usePrism = configwindow->usePrismHeader(); switch ( cardtype ) @@ -430,7 +437,7 @@ void Wellenreiter::startClicked() if ( !iface->monitorMode() ) { QMessageBox::warning( this, "Wellenreiter II", - tr( "Can't set device into monitor mode." ) ); + tr( "Can't set interface '%1' into monitor mode:\n" ).arg( iface->name() ) + strerror( errno ) ); return; } } @@ -461,7 +468,7 @@ void Wellenreiter::startClicked() if ( !pcap->isOpen() ) { QMessageBox::warning( this, "Wellenreiter II", - tr( "Can't open packet capturer:\n" ) + QString(strerror( errno ) )); + tr( "Can't open packet capturer for '%1':\n" ).arg( iface->name() ) + QString(strerror( errno ) )); return; } @@ -530,3 +537,4 @@ void Wellenreiter::doAction( const QString& action, const QString& protocol, OPa QMessageBox::information ( this, "Notification!", QString().sprintf( "Got packet with protocol '%s'", (const char*) protocol ) ); } + diff --git a/noncore/net/wellenreiter/gui/wellenreiter.h b/noncore/net/wellenreiter/gui/wellenreiter.h index 37e692c..d776492 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.h +++ b/noncore/net/wellenreiter/gui/wellenreiter.h @@ -48,6 +48,7 @@ class Wellenreiter : public WellenreiterBase { MHexWindow* hexWindow() const { return hexwindow; }; bool isDaemonRunning() const { return sniffing; }; + public: bool sniffing; protected: -- cgit v0.9.0.2