author | mickeyl <mickeyl> | 2003-04-10 17:26:35 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-04-10 17:26:35 (UTC) |
commit | 61eb255cc85160f7bb35602bbc10771be4da8708 (patch) (side-by-side diff) | |
tree | b66826f283d0ba41d3e27a44b8a0d63a7abc1238 | |
parent | 1064aea74c5dd7b3d4f87e483bd85f3fac0cf03c (diff) | |
download | opie-61eb255cc85160f7bb35602bbc10771be4da8708.zip opie-61eb255cc85160f7bb35602bbc10771be4da8708.tar.gz opie-61eb255cc85160f7bb35602bbc10771be4da8708.tar.bz2 |
New Feature: Write a capture file for later dissection with tcpdump-compatible tools!
-rw-r--r-- | noncore/net/wellenreiter/gui/configbase.ui | 512 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/configwindow.cpp | 16 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/configwindow.h | 1 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.cpp | 17 |
4 files changed, 331 insertions, 215 deletions
diff --git a/noncore/net/wellenreiter/gui/configbase.ui b/noncore/net/wellenreiter/gui/configbase.ui index 3ece270..ba4de32 100644 --- a/noncore/net/wellenreiter/gui/configbase.ui +++ b/noncore/net/wellenreiter/gui/configbase.ui @@ -11,8 +11,8 @@ <rect> <x>0</x> <y>0</y> - <width>220</width> - <height>306</height> + <width>236</width> + <height>342</height> </rect> </property> <property stdset="1"> @@ -25,16 +25,16 @@ <property> <name>layoutSpacing</name> </property> - <vbox> + <grid> <property stdset="1"> <name>margin</name> - <number>3</number> + <number>6</number> </property> <property stdset="1"> <name>spacing</name> - <number>1</number> + <number>5</number> </property> - <widget> + <widget row="0" column="0" rowspan="1" colspan="3" > <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> @@ -83,14 +83,200 @@ </widget> </hbox> </widget> - <widget> - <class>QLayoutWidget</class> + <widget row="1" column="0" rowspan="1" colspan="2" > + <class>QComboBox</class> <property stdset="1"> <name>name</name> - <cstring>Layout7</cstring> + <cstring>interfaceName</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>true</bool> </property> <property> - <name>layoutSpacing</name> + <name>whatsThis</name> + <string>Choose the interface used for sniffing.</string> + </property> + </widget> + <widget row="2" column="0" rowspan="1" colspan="2" > + <class>QComboBox</class> + <item> + <property> + <name>text</name> + <string><select></string> + </property> + </item> + <item> + <property> + <name>text</name> + <string>cisco</string> + </property> + </item> + <item> + <property> + <name>text</name> + <string>wlan-ng</string> + </property> + </item> + <item> + <property> + <name>text</name> + <string>hostap</string> + </property> + </item> + <item> + <property> + <name>text</name> + <string>orinoco</string> + </property> + </item> + <item> + <property> + <name>text</name> + <string><manual></string> + </property> + </item> + <item> + <property> + <name>text</name> + <string><file></string> + </property> + </item> + <property stdset="1"> + <name>name</name> + <cstring>deviceType</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>true</bool> + </property> + <property> + <name>whatsThis</name> + <string>Choose the type of driver used for sniffing.</string> + </property> + </widget> + <widget row="3" column="0" rowspan="1" colspan="2" > + <class>QSpinBox</class> + <property stdset="1"> + <name>name</name> + <cstring>hopInterval</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>true</bool> + </property> + <property stdset="1"> + <name>suffix</name> + <string> ms</string> + </property> + <property stdset="1"> + <name>maxValue</name> + <number>2000</number> + </property> + <property stdset="1"> + <name>minValue</name> + <number>100</number> + </property> + <property stdset="1"> + <name>lineStep</name> + <number>100</number> + </property> + <property> + <name>whatsThis</name> + <string>Choose the channel hop interval.</string> + </property> + </widget> + <widget row="3" column="2" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel3_3</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>true</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>Hop Interval</string> + </property> + </widget> + <widget row="2" column="2" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel2_3</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>true</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>Device Type</string> + </property> + </widget> + <widget row="1" column="2" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel1_2</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>true</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>Interface Name</string> + </property> + </widget> + <widget row="5" column="0" > + <class>QLabel</class> + <property stdset="1"> + <name>name</name> + <cstring>TextLabel1_5</cstring> + </property> + <property stdset="1"> + <name>text</name> + <string>Fake MAC:</string> + </property> + </widget> + <widget row="5" column="1" rowspan="1" colspan="2" > + <class>QLineEdit</class> + <property stdset="1"> + <name>name</name> + <cstring>MAC</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>44:44:44:44:44:44</string> + </property> + </widget> + <widget row="4" column="0" rowspan="1" colspan="3" > + <class>QCheckBox</class> + <property stdset="1"> + <name>name</name> + <cstring>activeScanning</cstring> + </property> + <property stdset="1"> + <name>enabled</name> + <bool>false</bool> + </property> + <property stdset="1"> + <name>text</name> + <string>Active Scanning (caution!)</string> + </property> + </widget> + <widget row="10" column="0" rowspan="1" colspan="3" > + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout5</cstring> </property> <grid> <property stdset="1"> @@ -99,36 +285,17 @@ </property> <property stdset="1"> <name>spacing</name> - <number>2</number> + <number>6</number> </property> - <widget row="0" column="0" > - <class>QComboBox</class> - <property stdset="1"> - <name>name</name> - <cstring>interfaceName</cstring> - </property> - <property stdset="1"> - <name>enabled</name> - <bool>true</bool> - </property> - <property> - <name>whatsThis</name> - <string>Choose the interface used for sniffing.</string> - </property> - </widget> - <widget row="4" column="0" rowspan="1" colspan="2" > - <class>QCheckBox</class> + <widget row="0" column="1" > + <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>activeScanning</cstring> - </property> - <property stdset="1"> - <name>enabled</name> - <bool>false</bool> + <cstring>TextLabel1</cstring> </property> <property stdset="1"> <name>text</name> - <string>Active Scanning (caution!)</string> + <string>sound on new net</string> </property> </widget> <widget row="1" column="0" > @@ -136,124 +303,96 @@ <item> <property> <name>text</name> - <string><select></string> + <string>Ignore</string> </property> </item> <item> <property> <name>text</name> - <string>cisco</string> + <string>Touch</string> </property> </item> <item> <property> <name>text</name> - <string>wlan-ng</string> + <string>Key</string> </property> </item> <item> <property> <name>text</name> - <string>hostap</string> + <string>Alarm</string> </property> </item> + <property stdset="1"> + <name>name</name> + <cstring>beaconSound</cstring> + </property> + </widget> + <widget row="0" column="0" > + <class>QComboBox</class> <item> <property> <name>text</name> - <string>orinoco</string> + <string>Ignore</string> </property> </item> <item> <property> <name>text</name> - <string><manual></string> + <string>Touch</string> </property> </item> <item> <property> <name>text</name> - <string><file></string> + <string>Key</string> + </property> + </item> + <item> + <property> + <name>text</name> + <string>Alarm</string> </property> </item> <property stdset="1"> <name>name</name> - <cstring>deviceType</cstring> - </property> - <property stdset="1"> - <name>enabled</name> - <bool>true</bool> - </property> - <property> - <name>whatsThis</name> - <string>Choose the type of driver used for sniffing.</string> - </property> - </widget> - <widget row="3" column="0" rowspan="1" colspan="2" > - <class>QCheckBox</class> - <property stdset="1"> - <name>name</name> - <cstring>additionalInfo</cstring> - </property> - <property stdset="1"> - <name>enabled</name> - <bool>false</bool> - </property> - <property stdset="1"> - <name>text</name> - <string>Gather Additional Info</string> - </property> - </widget> - <widget row="2" column="0" > - <class>QSpinBox</class> - <property stdset="1"> - <name>name</name> - <cstring>hopInterval</cstring> - </property> - <property stdset="1"> - <name>enabled</name> - <bool>true</bool> - </property> - <property stdset="1"> - <name>suffix</name> - <string> ms</string> - </property> - <property stdset="1"> - <name>maxValue</name> - <number>2000</number> - </property> - <property stdset="1"> - <name>minValue</name> - <number>100</number> - </property> - <property stdset="1"> - <name>lineStep</name> - <number>100</number> - </property> - <property> - <name>whatsThis</name> - <string>Choose the channel hop interval.</string> + <cstring>netSound</cstring> </property> </widget> - <widget row="2" column="1" > + <widget row="1" column="1" > <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel3_3</cstring> - </property> - <property stdset="1"> - <name>enabled</name> - <bool>true</bool> + <cstring>TextLabel1_3</cstring> </property> <property stdset="1"> <name>text</name> - <string>Hop Interval</string> + <string>sound on beacon</string> </property> </widget> - <widget row="1" column="1" > - <class>QLabel</class> + </grid> + </widget> + <widget row="8" column="0" rowspan="1" colspan="3" > + <class>QLayoutWidget</class> + <property stdset="1"> + <name>name</name> + <cstring>Layout7</cstring> + </property> + <hbox> + <property stdset="1"> + <name>margin</name> + <number>0</number> + </property> + <property stdset="1"> + <name>spacing</name> + <number>6</number> + </property> + <widget> + <class>QCheckBox</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel2_3</cstring> + <cstring>writeCaptureFile</cstring> </property> <property stdset="1"> <name>enabled</name> @@ -261,27 +400,27 @@ </property> <property stdset="1"> <name>text</name> - <string>Device Type</string> + <string>Write Capture File</string> </property> </widget> - <widget row="0" column="1" > - <class>QLabel</class> + <widget> + <class>QToolButton</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel1_2</cstring> + <cstring>getCaptureFileName</cstring> </property> <property stdset="1"> <name>enabled</name> - <bool>true</bool> + <bool>false</bool> </property> <property stdset="1"> <name>text</name> - <string>Interface Name</string> + <string>...</string> </property> </widget> - </grid> + </hbox> </widget> - <widget> + <widget row="7" column="0" rowspan="1" colspan="3" > <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> @@ -330,43 +469,34 @@ </widget> </hbox> </widget> - <widget> - <class>QCheckBox</class> - <property stdset="1"> + <spacer row="6" column="2" > + <property> <name>name</name> - <cstring>groupNetworks</cstring> - </property> - <property stdset="1"> - <name>enabled</name> - <bool>false</bool> + <cstring>Spacer1</cstring> </property> <property stdset="1"> - <name>text</name> - <string>Group Detected Networks</string> + <name>orientation</name> + <enum>Vertical</enum> </property> - </widget> - <widget> - <class>QCheckBox</class> <property stdset="1"> - <name>name</name> - <cstring>enableActivity</cstring> + <name>sizeType</name> + <enum>Expanding</enum> </property> - <property stdset="1"> - <name>enabled</name> - <bool>false</bool> - </property> - <property stdset="1"> - <name>text</name> - <string>Enable Activity Display</string> + <property> + <name>sizeHint</name> + <size> + <width>20</width> + <height>20</height> + </size> </property> - </widget> - <widget> + </spacer> + <widget row="9" column="0" rowspan="1" colspan="3" > <class>QLayoutWidget</class> <property stdset="1"> <name>name</name> - <cstring>Layout5</cstring> + <cstring>Layout7</cstring> </property> - <grid> + <hbox> <property stdset="1"> <name>margin</name> <number>0</number> @@ -375,92 +505,50 @@ <name>spacing</name> <number>6</number> </property> - <widget row="0" column="1" > + <widget> <class>QLabel</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel1</cstring> + <cstring>TextLabel1_4</cstring> </property> <property stdset="1"> <name>text</name> - <string>sound on new net</string> - </property> - </widget> - <widget row="1" column="0" > - <class>QComboBox</class> - <item> - <property> - <name>text</name> - <string>Ignore</string> - </property> - </item> - <item> - <property> - <name>text</name> - <string>Touch</string> - </property> - </item> - <item> - <property> - <name>text</name> - <string>Key</string> - </property> - </item> - <item> - <property> - <name>text</name> - <string>Alarm</string> - </property> - </item> - <property stdset="1"> - <name>name</name> - <cstring>beaconSound</cstring> - </property> - </widget> - <widget row="0" column="0" > - <class>QComboBox</class> - <item> - <property> - <name>text</name> - <string>Ignore</string> - </property> - </item> - <item> - <property> - <name>text</name> - <string>Touch</string> - </property> - </item> - <item> - <property> - <name>text</name> - <string>Key</string> - </property> - </item> - <item> - <property> - <name>text</name> - <string>Alarm</string> - </property> - </item> - <property stdset="1"> - <name>name</name> - <cstring>netSound</cstring> + <string>CaptureFile:</string> </property> </widget> - <widget row="1" column="1" > - <class>QLabel</class> + <widget> + <class>QLineEdit</class> <property stdset="1"> <name>name</name> - <cstring>TextLabel1_3</cstring> + <cstring>captureFileName</cstring> </property> <property stdset="1"> - <name>text</name> - <string>sound on beacon</string> + <name>enabled</name> + <bool>false</bool> </property> </widget> - </grid> + </hbox> </widget> - </vbox> + </grid> </widget> +<connections> + <connection> + <sender>writeCaptureFile</sender> + <signal>toggled(bool)</signal> + <receiver>getCaptureFileName</receiver> + <slot>setEnabled(bool)</slot> + </connection> + <connection> + <sender>activeScanning</sender> + <signal>toggled(bool)</signal> + <receiver>MAC</receiver> + <slot>setEnabled(bool)</slot> + </connection> + <connection> + <sender>writeCaptureFile</sender> + <signal>toggled(bool)</signal> + <receiver>captureFileName</receiver> + <slot>setEnabled(bool)</slot> + </connection> +</connections> </UI> diff --git a/noncore/net/wellenreiter/gui/configwindow.cpp b/noncore/net/wellenreiter/gui/configwindow.cpp index 4aca526..716618e 100644 --- a/noncore/net/wellenreiter/gui/configwindow.cpp +++ b/noncore/net/wellenreiter/gui/configwindow.cpp @@ -21,9 +21,11 @@ #include <qapplication.h> #include <qcombobox.h> #include <qfile.h> +#include <qlineedit.h> #include <qlayout.h> #include <qmap.h> #include <qpushbutton.h> +#include <qtoolbutton.h> #include <qspinbox.h> #include <qtextstream.h> @@ -85,6 +87,7 @@ WellenreiterConfigWindow::WellenreiterConfigWindow( QWidget * parent, const char WellenreiterConfigWindow::_instance = this; connect( deviceType, SIGNAL( activated(int) ), this, SLOT( changedDeviceType(int) ) ); + connect( getCaptureFileName, SIGNAL( clicked() ), this, SLOT( getCaptureFileNameClicked() ) ); }; @@ -112,7 +115,7 @@ void WellenreiterConfigWindow::changedDeviceType(int t) { if ( t != DEVTYPE_FILE ) return; QString name = ( (WellenreiterMainWindow*) qApp->mainWidget() )->getFileName(false); - if ( !name.isNull() && QFile::exists( name ) ) + if ( !name.isEmpty() && QFile::exists( name ) ) { interfaceName->insertItem( name ); interfaceName->setCurrentItem( interfaceName->count()-1 ); @@ -124,3 +127,14 @@ void WellenreiterConfigWindow::changedDeviceType(int t) } + +void WellenreiterConfigWindow::getCaptureFileNameClicked() +{ + QString name = ( (WellenreiterMainWindow*) qApp->mainWidget() )->getFileName(true); + qDebug( "name = %s", (const char*) name ); + if ( !name.isEmpty() ) + { + captureFileName->setText( name ); + } +} + diff --git a/noncore/net/wellenreiter/gui/configwindow.h b/noncore/net/wellenreiter/gui/configwindow.h index 7df1a80..c7c70a6 100644 --- a/noncore/net/wellenreiter/gui/configwindow.h +++ b/noncore/net/wellenreiter/gui/configwindow.h @@ -45,6 +45,7 @@ class WellenreiterConfigWindow : public WellenreiterConfigBase public slots: void changedDeviceType(int); + void getCaptureFileNameClicked(); protected: QMap<QString, int> _devicetype; diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp index 5c10c3b..be2a86e 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.cpp +++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp @@ -30,9 +30,11 @@ using namespace Opie; // Qt +#include <qcheckbox.h> +#include <qcombobox.h> #include <qpushbutton.h> +#include <qlineedit.h> #include <qmessagebox.h> -#include <qcombobox.h> #include <qspinbox.h> #include <qtoolbutton.h> #include <qmainwindow.h> @@ -320,9 +322,20 @@ void Wellenreiter::startClicked() // open pcap and start sniffing if ( cardtype != DEVTYPE_FILE ) - pcap->open( interface ); + { + if ( configwindow->writeCaptureFile->isEnabled() ) + { + pcap->open( interface, configwindow->captureFileName->text() ); + } + else + { + pcap->open( interface ); + } + } else + { pcap->open( QFile( interface ) ); + } if ( !pcap->isOpen() ) { |