-rw-r--r-- | noncore/net/wellenreiter/gui/mainwindow.cpp | 30 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.cpp | 12 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.h | 2 |
3 files changed, 22 insertions, 22 deletions
diff --git a/noncore/net/wellenreiter/gui/mainwindow.cpp b/noncore/net/wellenreiter/gui/mainwindow.cpp index 8525109..ef7ffcf 100644 --- a/noncore/net/wellenreiter/gui/mainwindow.cpp +++ b/noncore/net/wellenreiter/gui/mainwindow.cpp | |||
@@ -24,17 +24,17 @@ | |||
24 | /* OPIE */ | 24 | /* OPIE */ |
25 | #ifdef QWS | 25 | #ifdef QWS |
26 | #include <qpe/resource.h> | 26 | #include <qpe/resource.h> |
27 | #include <opie2/odebug.h> | 27 | #include <opie2/odebug.h> |
28 | #include <opie2/ofiledialog.h> | 28 | #include <opie2/ofiledialog.h> |
29 | #else | 29 | #else |
30 | #include "resource.h" | 30 | #include "resource.h" |
31 | #include <qapplication.h> | 31 | #include <qapplication.h> |
32 | #include <qfiledialog.h> | 32 | #include <qfiledialog.h> |
33 | #endif | 33 | #endif |
34 | using namespace Opie::Core; | 34 | using namespace Opie::Core; |
35 | using namespace Opie::Net; | 35 | using namespace Opie::Net; |
36 | using namespace Opie::Ui; | 36 | using namespace Opie::Ui; |
37 | 37 | ||
38 | /* QT */ | 38 | /* QT */ |
39 | #include <qcombobox.h> | 39 | #include <qcombobox.h> |
40 | #include <qdatastream.h> | 40 | #include <qdatastream.h> |
@@ -184,17 +184,17 @@ WellenreiterMainWindow::WellenreiterMainWindow( QWidget * parent, const char * n | |||
184 | connect( mw, SIGNAL( startedSniffing() ), this, SLOT( changedSniffingState() ) ); | 184 | connect( mw, SIGNAL( startedSniffing() ), this, SLOT( changedSniffingState() ) ); |
185 | connect( mw, SIGNAL( stoppedSniffing() ), this, SLOT( changedSniffingState() ) ); | 185 | connect( mw, SIGNAL( stoppedSniffing() ), this, SLOT( changedSniffingState() ) ); |
186 | }; | 186 | }; |
187 | 187 | ||
188 | 188 | ||
189 | 189 | ||
190 | void WellenreiterMainWindow::showConfigure() | 190 | void WellenreiterMainWindow::showConfigure() |
191 | { | 191 | { |
192 | odebug << "show configure..." << oendl; | 192 | odebug << "show configure..." << oendl; |
193 | cw->setCaption( tr( "Configure" ) ); | 193 | cw->setCaption( tr( "Configure" ) ); |
194 | int result = QPEApplication::execDialog( cw ); | 194 | int result = QPEApplication::execDialog( cw ); |
195 | 195 | ||
196 | if ( result ) updateToolButtonState(); | 196 | if ( result ) updateToolButtonState(); |
197 | } | 197 | } |
198 | 198 | ||
199 | 199 | ||
200 | void WellenreiterMainWindow::updateToolButtonState() | 200 | void WellenreiterMainWindow::updateToolButtonState() |
@@ -217,27 +217,27 @@ void WellenreiterMainWindow::updateToolButtonState() | |||
217 | 217 | ||
218 | void WellenreiterMainWindow::changedSniffingState() | 218 | void WellenreiterMainWindow::changedSniffingState() |
219 | { | 219 | { |
220 | startButton->setEnabled( !mw->sniffing ); | 220 | startButton->setEnabled( !mw->sniffing ); |
221 | menuBar()->setItemEnabled( startID, !mw->sniffing ); | 221 | menuBar()->setItemEnabled( startID, !mw->sniffing ); |
222 | stopButton->setEnabled( mw->sniffing ); | 222 | stopButton->setEnabled( mw->sniffing ); |
223 | menuBar()->setItemEnabled( stopID, mw->sniffing ); | 223 | menuBar()->setItemEnabled( stopID, mw->sniffing ); |
224 | 224 | ||
225 | if ( !mw->sniffing ) | 225 | if ( !mw->sniffing && QFile::exists( mw->dumpname ) ) |
226 | { | 226 | { |
227 | menuBar()->setItemEnabled( uploadID, true ); | 227 | menuBar()->setItemEnabled( uploadID, true ); |
228 | uploadButton->setEnabled( true ); | 228 | uploadButton->setEnabled( true ); |
229 | } | 229 | } |
230 | } | 230 | } |
231 | 231 | ||
232 | 232 | ||
233 | WellenreiterMainWindow::~WellenreiterMainWindow() | 233 | WellenreiterMainWindow::~WellenreiterMainWindow() |
234 | { | 234 | { |
235 | odebug << "Wellenreiter: bye." << oendl; | 235 | odebug << "Wellenreiter: bye." << oendl; |
236 | }; | 236 | }; |
237 | 237 | ||
238 | 238 | ||
239 | void WellenreiterMainWindow::demoAddStations() | 239 | void WellenreiterMainWindow::demoAddStations() |
240 | { | 240 | { |
241 | //mw = 0; // test SIGSEGV handling | 241 | //mw = 0; // test SIGSEGV handling |
242 | 242 | ||
243 | mw->netView()->addNewItem( "managed", "Vanille", OMacAddress::fromString("00:00:20:EF:A6:43"), true, 6, 80, GpsLocation( 39.8794, -94.0936) ); | 243 | mw->netView()->addNewItem( "managed", "Vanille", OMacAddress::fromString("00:00:20:EF:A6:43"), true, 6, 80, GpsLocation( 39.8794, -94.0936) ); |
@@ -247,17 +247,17 @@ void WellenreiterMainWindow::demoAddStations() | |||
247 | mw->netView()->addNewItem( "adhoc", "ELAN", OMacAddress::fromString("00:05:8E:E7:56:E2"), false, 3, 20, GpsLocation( -10.0, -20.5 ) ); | 247 | mw->netView()->addNewItem( "adhoc", "ELAN", OMacAddress::fromString("00:05:8E:E7:56:E2"), false, 3, 20, GpsLocation( -10.0, -20.5 ) ); |
248 | } | 248 | } |
249 | 249 | ||
250 | 250 | ||
251 | void WellenreiterMainWindow::demoReadFromGps() | 251 | void WellenreiterMainWindow::demoReadFromGps() |
252 | { | 252 | { |
253 | WellenreiterConfigWindow* configwindow = WellenreiterConfigWindow::instance(); | 253 | WellenreiterConfigWindow* configwindow = WellenreiterConfigWindow::instance(); |
254 | GPS* gps = new GPS( this ); | 254 | GPS* gps = new GPS( this ); |
255 | odebug << "Wellenreiter::demoReadFromGps(): url=gps://" << configwindow->gpsdHost->currentText() << ":" << configwindow->gpsdPort->value() << "/" << oendl; | 255 | odebug << "Wellenreiter::demoReadFromGps(): url=gps://" << configwindow->gpsdHost->currentText() << ":" << configwindow->gpsdPort->value() << "/" << oendl; |
256 | gps->open( configwindow->gpsdHost->currentText(), configwindow->gpsdPort->value() ); | 256 | gps->open( configwindow->gpsdHost->currentText(), configwindow->gpsdPort->value() ); |
257 | GpsLocation loc = gps->position(); | 257 | GpsLocation loc = gps->position(); |
258 | QMessageBox::information( this, "Wellenreiter/Opie", tr( "GPS said:\n%1" ).arg( loc.dmsPosition() ) ); | 258 | QMessageBox::information( this, "Wellenreiter/Opie", tr( "GPS said:\n%1" ).arg( loc.dmsPosition() ) ); |
259 | delete gps; | 259 | delete gps; |
260 | } | 260 | } |
261 | 261 | ||
262 | 262 | ||
263 | QString WellenreiterMainWindow::getFileName( bool save ) | 263 | QString WellenreiterMainWindow::getFileName( bool save ) |
@@ -301,42 +301,42 @@ void WellenreiterMainWindow::fileSaveLog() | |||
301 | if ( !fname.isEmpty() ) | 301 | if ( !fname.isEmpty() ) |
302 | { | 302 | { |
303 | QFile f( fname ); | 303 | QFile f( fname ); |
304 | if ( f.open(IO_WriteOnly) ) | 304 | if ( f.open(IO_WriteOnly) ) |
305 | { | 305 | { |
306 | QTextStream t( &f ); | 306 | QTextStream t( &f ); |
307 | t << mw->logWindow()->getLog(); | 307 | t << mw->logWindow()->getLog(); |
308 | f.close(); | 308 | f.close(); |
309 | odebug << "Saved log to file '" << fname << "'" << oendl; | 309 | odebug << "Saved log to file '" << fname << "'" << oendl; |
310 | } | 310 | } |
311 | else | 311 | else |
312 | { | 312 | { |
313 | odebug << "Problem saving log to file '" << fname << "'" << oendl; | 313 | odebug << "Problem saving log to file '" << fname << "'" << oendl; |
314 | } | 314 | } |
315 | } | 315 | } |
316 | } | 316 | } |
317 | 317 | ||
318 | void WellenreiterMainWindow::fileSaveSession() | 318 | void WellenreiterMainWindow::fileSaveSession() |
319 | { | 319 | { |
320 | QString fname = getFileName( true ); | 320 | QString fname = getFileName( true ); |
321 | if ( !fname.isEmpty() ) | 321 | if ( !fname.isEmpty() ) |
322 | { | 322 | { |
323 | 323 | ||
324 | QFile f( fname ); | 324 | QFile f( fname ); |
325 | if ( f.open(IO_WriteOnly) ) | 325 | if ( f.open(IO_WriteOnly) ) |
326 | { | 326 | { |
327 | QDataStream t( &f ); | 327 | QDataStream t( &f ); |
328 | t << *mw->netView(); | 328 | t << *mw->netView(); |
329 | f.close(); | 329 | f.close(); |
330 | odebug << "Saved session to file '" << fname << "'" << oendl; | 330 | odebug << "Saved session to file '" << fname << "'" << oendl; |
331 | } | 331 | } |
332 | else | 332 | else |
333 | { | 333 | { |
334 | odebug << "Problem saving session to file '" << fname << "'" << oendl; | 334 | odebug << "Problem saving session to file '" << fname << "'" << oendl; |
335 | } | 335 | } |
336 | } | 336 | } |
337 | } | 337 | } |
338 | 338 | ||
339 | void WellenreiterMainWindow::fileSaveHex() | 339 | void WellenreiterMainWindow::fileSaveHex() |
340 | { | 340 | { |
341 | #warning DOES NOT WORK AT THE MOMENT | 341 | #warning DOES NOT WORK AT THE MOMENT |
342 | /* | 342 | /* |
@@ -344,42 +344,42 @@ void WellenreiterMainWindow::fileSaveHex() | |||
344 | if ( !fname.isEmpty() ) | 344 | if ( !fname.isEmpty() ) |
345 | { | 345 | { |
346 | QFile f( fname ); | 346 | QFile f( fname ); |
347 | if ( f.open(IO_WriteOnly) ) | 347 | if ( f.open(IO_WriteOnly) ) |
348 | { | 348 | { |
349 | QTextStream t( &f ); | 349 | QTextStream t( &f ); |
350 | t << mw->hexWindow()->getLog(); | 350 | t << mw->hexWindow()->getLog(); |
351 | f.close(); | 351 | f.close(); |
352 | odebug << "Saved hex log to file '" << fname << "'" << oendl; | 352 | odebug << "Saved hex log to file '" << fname << "'" << oendl; |
353 | } | 353 | } |
354 | else | 354 | else |
355 | { | 355 | { |
356 | odebug << "Problem saving hex log to file '" << fname << "'" << oendl; | 356 | odebug << "Problem saving hex log to file '" << fname << "'" << oendl; |
357 | } | 357 | } |
358 | } | 358 | } |
359 | */ | 359 | */ |
360 | } | 360 | } |
361 | 361 | ||
362 | void WellenreiterMainWindow::fileLoadSession() | 362 | void WellenreiterMainWindow::fileLoadSession() |
363 | { | 363 | { |
364 | QString fname = getFileName( false ); | 364 | QString fname = getFileName( false ); |
365 | if ( !fname.isEmpty() ) | 365 | if ( !fname.isEmpty() ) |
366 | { | 366 | { |
367 | QFile f( fname ); | 367 | QFile f( fname ); |
368 | if ( f.open(IO_ReadOnly) ) | 368 | if ( f.open(IO_ReadOnly) ) |
369 | { | 369 | { |
370 | QDataStream t( &f ); | 370 | QDataStream t( &f ); |
371 | t >> *mw->netView(); | 371 | t >> *mw->netView(); |
372 | f.close(); | 372 | f.close(); |
373 | odebug << "Loaded session from file '" << fname << "'" << oendl; | 373 | odebug << "Loaded session from file '" << fname << "'" << oendl; |
374 | } | 374 | } |
375 | else | 375 | else |
376 | { | 376 | { |
377 | odebug << "Problem loading session from file '" << fname << "'" << oendl; | 377 | odebug << "Problem loading session from file '" << fname << "'" << oendl; |
378 | } | 378 | } |
379 | } | 379 | } |
380 | } | 380 | } |
381 | 381 | ||
382 | 382 | ||
383 | void WellenreiterMainWindow::fileNew() | 383 | void WellenreiterMainWindow::fileNew() |
384 | { | 384 | { |
385 | mw->netView()->clear(); | 385 | mw->netView()->clear(); |
@@ -434,21 +434,21 @@ void WellenreiterMainWindow::uploadSession() | |||
434 | location->setText( "WL II Location" ); | 434 | location->setText( "WL II Location" ); |
435 | comments->setText( "No Comments." ); | 435 | comments->setText( "No Comments." ); |
436 | connect( accept, SIGNAL( clicked() ), d, SLOT( accept() ) ); | 436 | connect( accept, SIGNAL( clicked() ), d, SLOT( accept() ) ); |
437 | connect( reject, SIGNAL( clicked() ), d, SLOT( reject() ) ); | 437 | connect( reject, SIGNAL( clicked() ), d, SLOT( reject() ) ); |
438 | int result = d->exec(); | 438 | int result = d->exec(); |
439 | 439 | ||
440 | if ( !result ) | 440 | if ( !result ) |
441 | { | 441 | { |
442 | odebug << "Session upload cancelled :(" << oendl; | 442 | odebug << "Session upload cancelled :(" << oendl; |
443 | return; | 443 | return; |
444 | } | 444 | } |
445 | 445 | ||
446 | odebug << "Starting upload..." << oendl; | 446 | odebug << "Starting upload..." << oendl; |
447 | 447 | ||
448 | struct sockaddr_in raddr; | 448 | struct sockaddr_in raddr; |
449 | struct hostent *rhost_info; | 449 | struct hostent *rhost_info; |
450 | int sock = -1; | 450 | int sock = -1; |
451 | bool ok = false; | 451 | bool ok = false; |
452 | 452 | ||
453 | rhost_info = (struct hostent *) ::gethostbyname( CAP_hostname ); | 453 | rhost_info = (struct hostent *) ::gethostbyname( CAP_hostname ); |
454 | if ( rhost_info ) | 454 | if ( rhost_info ) |
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp index fe8f22d..2f85790 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.cpp +++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp | |||
@@ -108,16 +108,17 @@ void Wellenreiter::initialTimer() | |||
108 | } | 108 | } |
109 | 109 | ||
110 | 110 | ||
111 | void Wellenreiter::signalHandler( int sig ) | 111 | void Wellenreiter::signalHandler( int sig ) |
112 | { | 112 | { |
113 | oerr << "Aye! Received SIGSEGV or SIGBUS! Trying to exit gracefully..." << oendl; | 113 | oerr << "Aye! Received SIGSEGV or SIGBUS! Trying to exit gracefully..." << oendl; |
114 | if ( Wellenreiter::instance->sniffing ) | 114 | if ( Wellenreiter::instance->sniffing ) |
115 | { | 115 | { |
116 | Wellenreiter::instance->pcap->closeDumpFile(); | ||
116 | Wellenreiter::instance->pcap->close(); | 117 | Wellenreiter::instance->pcap->close(); |
117 | Wellenreiter::instance->stopClicked(); | 118 | Wellenreiter::instance->stopClicked(); |
118 | } | 119 | } |
119 | oerr << "Phew. Seemed to work." << oendl; | 120 | oerr << "Phew. Seemed to work." << oendl; |
120 | ::exit( -1 ); | 121 | ::exit( -1 ); |
121 | } | 122 | } |
122 | 123 | ||
123 | 124 | ||
@@ -617,28 +618,27 @@ void Wellenreiter::startClicked() | |||
617 | if ( configwindow->writeCaptureFile->isChecked() ) // write to a user specified capture file? | 618 | if ( configwindow->writeCaptureFile->isChecked() ) // write to a user specified capture file? |
618 | { | 619 | { |
619 | dumpname = configwindow->captureFileName->text(); | 620 | dumpname = configwindow->captureFileName->text(); |
620 | if ( dumpname.isEmpty() ) dumpname = "captureFile"; | 621 | if ( dumpname.isEmpty() ) dumpname = "captureFile"; |
621 | dumpname.append( '-' ); | 622 | dumpname.append( '-' ); |
622 | dumpname.append( QTime::currentTime().toString().replace( QRegExp( ":" ), "-" ) ); | 623 | dumpname.append( QTime::currentTime().toString().replace( QRegExp( ":" ), "-" ) ); |
623 | dumpname.append( ".wellenreiter" ); | 624 | dumpname.append( ".wellenreiter" ); |
624 | } | 625 | } |
625 | else // write it anyway ;) | ||
626 | { | ||
627 | dumpname = "/var/log/dump.wellenreiter"; | ||
628 | } | ||
629 | 626 | ||
630 | if ( cardtype != DEVTYPE_FILE ) | 627 | if ( cardtype != DEVTYPE_FILE ) |
631 | pcap->open( interface ); | 628 | pcap->open( interface ); |
632 | else | 629 | else |
633 | pcap->openCaptureFile( interface ); | 630 | pcap->openCaptureFile( interface ); |
634 | 631 | ||
635 | odebug << "Wellenreiter:: dumping to " << dumpname << "" << oendl; | 632 | if ( configwindow->writeCaptureFile->isChecked() ) |
636 | pcap->openDumpFile( dumpname ); | 633 | { |
634 | odebug << "Wellenreiter:: dumping to " << dumpname << oendl; | ||
635 | pcap->openDumpFile( dumpname ); | ||
636 | } | ||
637 | 637 | ||
638 | if ( !pcap->isOpen() ) | 638 | if ( !pcap->isOpen() ) |
639 | { | 639 | { |
640 | QMessageBox::warning( this, "Wellenreiter II", tr( "Can't open packet capturer for\n'%1':\n" ).arg( | 640 | QMessageBox::warning( this, "Wellenreiter II", tr( "Can't open packet capturer for\n'%1':\n" ).arg( |
641 | cardtype == DEVTYPE_FILE ? (const char*) interface : iface->name() ) + QString(strerror( errno ) )); | 641 | cardtype == DEVTYPE_FILE ? (const char*) interface : iface->name() ) + QString(strerror( errno ) )); |
642 | return; | 642 | return; |
643 | } | 643 | } |
644 | 644 | ||
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.h b/noncore/net/wellenreiter/gui/wellenreiter.h index 32e5690..f582a5f 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.h +++ b/noncore/net/wellenreiter/gui/wellenreiter.h | |||
@@ -50,16 +50,17 @@ class Wellenreiter : public WellenreiterBase { | |||
50 | void setConfigWindow( WellenreiterConfigWindow* cw ); | 50 | void setConfigWindow( WellenreiterConfigWindow* cw ); |
51 | MScanListView* netView() const { return netview; }; | 51 | MScanListView* netView() const { return netview; }; |
52 | MLogWindow* logWindow() const { return logwindow; }; | 52 | MLogWindow* logWindow() const { return logwindow; }; |
53 | PacketView* hexWindow() const { return hexwindow; }; | 53 | PacketView* hexWindow() const { return hexwindow; }; |
54 | bool isDaemonRunning() const { return sniffing; }; | 54 | bool isDaemonRunning() const { return sniffing; }; |
55 | QString captureFileName() const { return dumpname; }; | 55 | QString captureFileName() const { return dumpname; }; |
56 | 56 | ||
57 | public: | 57 | public: |
58 | QString dumpname; | ||
58 | bool sniffing; | 59 | bool sniffing; |
59 | static Wellenreiter* instance; | 60 | static Wellenreiter* instance; |
60 | static void signalHandler( int sig ); | 61 | static void signalHandler( int sig ); |
61 | 62 | ||
62 | protected: | 63 | protected: |
63 | virtual void timerEvent( QTimerEvent* ); | 64 | virtual void timerEvent( QTimerEvent* ); |
64 | 65 | ||
65 | public slots: | 66 | public slots: |
@@ -92,17 +93,16 @@ class Wellenreiter : public WellenreiterBase { | |||
92 | bool checkDumpPacket( Opie::Net::OPacket* p ); | 93 | bool checkDumpPacket( Opie::Net::OPacket* p ); |
93 | void registerSignalHandler(); | 94 | void registerSignalHandler(); |
94 | 95 | ||
95 | private: | 96 | private: |
96 | #ifdef QWS | 97 | #ifdef QWS |
97 | Opie::Core::OSystem _system; // Opie Operating System identifier | 98 | Opie::Core::OSystem _system; // Opie Operating System identifier |
98 | #endif | 99 | #endif |
99 | 100 | ||
100 | QString dumpname; | ||
101 | Opie::Net::OWirelessNetworkInterface* iface; | 101 | Opie::Net::OWirelessNetworkInterface* iface; |
102 | Opie::Net::OPacketCapturer* pcap; | 102 | Opie::Net::OPacketCapturer* pcap; |
103 | WellenreiterConfigWindow* configwindow; | 103 | WellenreiterConfigWindow* configwindow; |
104 | GPS* gps; | 104 | GPS* gps; |
105 | 105 | ||
106 | //void readConfig(); | 106 | //void readConfig(); |
107 | //void writeConfig(); | 107 | //void writeConfig(); |
108 | }; | 108 | }; |