author | mickeyl <mickeyl> | 2003-01-04 17:18:59 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-01-04 17:18:59 (UTC) |
commit | 68400748895ca7c54ad312afdfe830150d53a801 (patch) (unidiff) | |
tree | ef9e4c85fb8aac71b613af9766e5ca6c4bd58f51 | |
parent | 059caec066275d75501471a49c5465fe4def59cf (diff) | |
download | opie-68400748895ca7c54ad312afdfe830150d53a801.zip opie-68400748895ca7c54ad312afdfe830150d53a801.tar.gz opie-68400748895ca7c54ad312afdfe830150d53a801.tar.bz2 |
Try to gracefully shut down the card after sniffing... this is a temporary
hack until the colleagues implement this in libwellenreiter...
-rw-r--r-- | noncore/net/wellenreiter/README | 27 | ||||
-rw-r--r-- | noncore/net/wellenreiter/gui/wellenreiter.cpp | 26 |
2 files changed, 41 insertions, 12 deletions
diff --git a/noncore/net/wellenreiter/README b/noncore/net/wellenreiter/README index c04d30c..af2e611 100644 --- a/noncore/net/wellenreiter/README +++ b/noncore/net/wellenreiter/README | |||
@@ -1,60 +1,73 @@ | |||
1 | /*************************************************************************/ | 1 | /*************************************************************************/ |
2 | /* W e l l e n r e i t e r I I */ | 2 | /* W e l l e n r e i t e r I I */ |
3 | /* =============================== */ | 3 | /* =============================== */ |
4 | /* */ | 4 | /* */ |
5 | /* Version: Opie-ALPHA */ | 5 | /* Version: Opie-ALPHA-January */ |
6 | /*************************************************************************/ | 6 | /*************************************************************************/ |
7 | 7 | ||
8 | -------------------------------------------------- | 8 | -------------------------------------------------- |
9 | Release Notes for Opie-ALPHA Version December 2002 | 9 | Release Notes for Opie-ALPHA Version January 2002 |
10 | -------------------------------------------------- | 10 | -------------------------------------------------- |
11 | 11 | ||
12 | ===================== | 12 | ===================== |
13 | = Supported Devices = | 13 | = Supported Devices = |
14 | ===================== | 14 | ===================== |
15 | 15 | ||
16 | * low-level orinoco_cs-based (including prism2 and spectrum_cs) | 16 | * low-level orinoco_cs-based (including prism2 and spectrum_cs) |
17 | 17 | ||
18 | * Supported Interfaces: wlan0 (yes, I know this is hardcoded and | ||
19 | lame, but we're in a hurry and this can be configured soon...) | ||
20 | |||
21 | ===================== | 18 | ===================== |
22 | = Build = | 19 | = Build = |
23 | ===================== | 20 | ===================== |
24 | 21 | ||
25 | To compile Wellenreiter within the Opie build environment, add the | 22 | To compile Wellenreiter within the Opie build environment, add the |
26 | following directories to $OPIEDIR/Makefile, e.g. to 'NONAPPS=' | 23 | following directories to $OPIEDIR/Makefile, e.g. to 'NONAPPS=' |
27 | 24 | ||
28 | noncore/net/wellenreiter/libwellenreiter \ | 25 | noncore/net/wellenreiter/libwellenreiter \ |
29 | noncore/net/wellenreiter/daemon \ | 26 | noncore/net/wellenreiter/daemon \ |
30 | noncore/net/wellenreiter/contrib/orinoco_hopper \ | 27 | noncore/net/wellenreiter/contrib/orinoco_hopper \ |
31 | noncore/net/wellenreiter/gui | 28 | noncore/net/wellenreiter/gui |
32 | 29 | ||
33 | ./configure and rebuild. Note that you need libpcap in your toolchain. | 30 | ./configure and rebuild. Note that you need libpcap in your toolchain. |
34 | 31 | ||
32 | To compile Wellenreiter within the OZ build environment, add the | ||
33 | following lines to $OPIEDIR/packages | ||
34 | CONFIG_WELLENREITER noncore/net/wellenreiter/libwellenreiter libwellenreiter.pro | ||
35 | CONFIG_WELLENREITER noncore/net/wellenreiter/daemon daemon.pro | ||
36 | CONFIG_WELLENREITER noncore/net/wellenreiter/gui gui.pro | ||
37 | CONFIG_WELLENREITER noncore/net/wellenreiter/contrib/orinoco_hopper orinoco_hopper.pro | ||
38 | |||
39 | make -f Makefile.test clean-configs | ||
40 | cd <BUILDROOT> | ||
41 | make SUBDIRS=packages/opie package | ||
42 | |||
35 | ===================== | 43 | ===================== |
36 | = Install = | 44 | = Install = |
37 | ===================== | 45 | ===================== |
38 | 46 | ||
39 | Alternatively, you can use our precompiled ipk. Get it from | 47 | Alternatively, you can use our precompiled ipk. Get it from |
40 | http://opie.net.wox.org/elan/current. You will also need libpcap. | 48 | http://opie.net.wox.org/wellenreiter/current/. This also includes a recent libpcap. |
41 | 49 | ||
42 | ===================== | 50 | ===================== |
43 | = Run = | 51 | = Run = |
44 | ===================== | 52 | ===================== |
45 | 53 | ||
54 | There are two possible modes: <Manual> and <Automatic>. I suggest, you | ||
55 | start with the <Automatic> Mode. This works just using the "Start" | ||
56 | and "Stop" Pushbuttons in the Wellenreiter GUI. If this doesn't work, | ||
57 | then use the following strategy: | ||
58 | |||
46 | 1. Place card in monitor mode. This is device dependent. | 59 | 1. Place card in monitor mode. This is device dependent. |
47 | 60 | ||
48 | Caution: Don't do this while you're logged in via ssh | 61 | Caution: Don't do this while you're logged in via ssh |
49 | or otherwise using the wireless interface - your connection | 62 | or otherwise using the wireless interface - your connection |
50 | will freeze: The card can't be used normally when sniffing! | 63 | will freeze: The card can't be used normally when sniffing! |
51 | 64 | ||
52 | For most orinoco-based cards this can be done using | 65 | For most orinoco-based cards this can be done using either |
53 | 'iwpriv <interface> 2' or 'iwpriv <interface> 2 1'. | 66 | 'iwpriv <interface> 2' or 'iwpriv <interface> 2 1'. |
54 | 67 | ||
55 | You can check if this works, by calling 'ifconfig <interface>'. | 68 | You can check if this works, by calling 'ifconfig <interface>'. |
56 | If you see 'Protocol: UNSPEC' and an unusual long MAC-Address, | 69 | If you see 'Protocol: UNSPEC' and an unusual long MAC-Address, |
57 | then your card has been successfully set to the monitor mode. | 70 | then your card has been successfully set to the monitor mode. |
58 | 71 | ||
59 | 2. Start a channel hopper. A wireless card has several channels | 72 | 2. Start a channel hopper. A wireless card has several channels |
60 | (e.g. radio frequencies) here it can listen for beacons. | 73 | (e.g. radio frequencies) here it can listen for beacons. |
diff --git a/noncore/net/wellenreiter/gui/wellenreiter.cpp b/noncore/net/wellenreiter/gui/wellenreiter.cpp index b22c5cc..4ee9a35 100644 --- a/noncore/net/wellenreiter/gui/wellenreiter.cpp +++ b/noncore/net/wellenreiter/gui/wellenreiter.cpp | |||
@@ -107,17 +107,17 @@ Wellenreiter::Wellenreiter( QWidget* parent, const char* name, WFlags fl ) | |||
107 | fcntl( daemon_fd, F_SETFL, flags | O_NONBLOCK ); | 107 | fcntl( daemon_fd, F_SETFL, flags | O_NONBLOCK ); |
108 | QSocketNotifier *sn = new QSocketNotifier( daemon_fd, QSocketNotifier::Read, parent ); | 108 | QSocketNotifier *sn = new QSocketNotifier( daemon_fd, QSocketNotifier::Read, parent ); |
109 | connect( sn, SIGNAL( activated( int ) ), this, SLOT( dataReceived() ) ); | 109 | connect( sn, SIGNAL( activated( int ) ), this, SLOT( dataReceived() ) ); |
110 | } | 110 | } |
111 | 111 | ||
112 | // setup GUI | 112 | // setup GUI |
113 | 113 | ||
114 | connect( button, SIGNAL( clicked() ), this, SLOT( buttonClicked() ) ); | 114 | connect( button, SIGNAL( clicked() ), this, SLOT( buttonClicked() ) ); |
115 | button->setEnabled( false ); | 115 | // button->setEnabled( false ); |
116 | netview->setColumnWidthMode( 1, QListView::Manual ); | 116 | netview->setColumnWidthMode( 1, QListView::Manual ); |
117 | 117 | ||
118 | if ( manufacturerdb ) | 118 | if ( manufacturerdb ) |
119 | netview->setManufacturerDB( manufacturerdb ); | 119 | netview->setManufacturerDB( manufacturerdb ); |
120 | 120 | ||
121 | } | 121 | } |
122 | 122 | ||
123 | Wellenreiter::~Wellenreiter() | 123 | Wellenreiter::~Wellenreiter() |
@@ -230,21 +230,38 @@ void Wellenreiter::buttonClicked() | |||
230 | logwindow->log( "(i) Daemon has been stopped." ); | 230 | logwindow->log( "(i) Daemon has been stopped." ); |
231 | button->setText( "Start Scanning" ); | 231 | button->setText( "Start Scanning" ); |
232 | 232 | ||
233 | // Stop daemon - ugly for now... later better | 233 | // Stop daemon - ugly for now... later better |
234 | 234 | ||
235 | system( "killall orinoco_hopper" ); | 235 | system( "killall orinoco_hopper" ); |
236 | system( "killall wellenreiterd" ); | 236 | system( "killall wellenreiterd" ); |
237 | 237 | ||
238 | // FIXME: reset the card trying to get into a usable state again | 238 | // get configuration from config window |
239 | 239 | ||
240 | // for now, just message the user | 240 | const QString& interface = configwindow->interfaceName->currentText(); |
241 | const QString& cardtype = configwindow->deviceType->currentText(); | ||
242 | const QString& interval = configwindow->hopInterval->cleanText(); | ||
243 | |||
244 | // reset the card trying to get into a usable state again | ||
245 | |||
246 | QString cmdline; | ||
247 | cmdline.sprintf( "iwpriv %s monitor 1", (const char*) interface ); | ||
248 | system( cmdline ); | ||
249 | cmdline.sprintf( "iwpriv %s monitor 1 6", (const char*) interface ); | ||
250 | system( cmdline ); | ||
251 | cmdline.sprintf( "ifconfig %s -promisc", (const char*) interface ); | ||
252 | system( cmdline ); | ||
253 | cmdline.sprintf( "killall -14 dhcpcd" ); | ||
254 | system( cmdline ); | ||
255 | cmdline.sprintf( "killall -10 udhcpc" ); | ||
256 | |||
257 | // message the user | ||
241 | 258 | ||
242 | QMessageBox::information( this, "Wellenreiter/Opie", "You should reset your\ndevice before using it again." ); | 259 | QMessageBox::information( this, "Wellenreiter/Opie", "Your wireless card\nshould now be usable again." ); |
243 | } | 260 | } |
244 | 261 | ||
245 | else | 262 | else |
246 | { | 263 | { |
247 | 264 | ||
248 | logwindow->log( "(i) Daemon has been started." ); | 265 | logwindow->log( "(i) Daemon has been started." ); |
249 | daemonRunning = true; | 266 | daemonRunning = true; |
250 | button->setText( "Stop Scanning" ); | 267 | button->setText( "Stop Scanning" ); |
@@ -260,17 +277,16 @@ void Wellenreiter::buttonClicked() | |||
260 | QMessageBox::information( this, "Wellenreiter/Opie", "You must configure your\ndevice before scanning." ); | 277 | QMessageBox::information( this, "Wellenreiter/Opie", "You must configure your\ndevice before scanning." ); |
261 | return; | 278 | return; |
262 | } | 279 | } |
263 | 280 | ||
264 | // set interface into monitor mode | 281 | // set interface into monitor mode |
265 | /* Global::Execute definitely does not work very well with non-gui stuff! :( */ | 282 | /* Global::Execute definitely does not work very well with non-gui stuff! :( */ |
266 | 283 | ||
267 | QString cmdline; | 284 | QString cmdline; |
268 | |||
269 | cmdline.sprintf( "iwpriv %s monitor 2", (const char*) interface ); | 285 | cmdline.sprintf( "iwpriv %s monitor 2", (const char*) interface ); |
270 | system( cmdline ); | 286 | system( cmdline ); |
271 | cmdline.sprintf( "iwpriv %s monitor 2 1", (const char*) interface ); | 287 | cmdline.sprintf( "iwpriv %s monitor 2 1", (const char*) interface ); |
272 | system( cmdline ); | 288 | system( cmdline ); |
273 | 289 | ||
274 | // start channel hopper | 290 | // start channel hopper |
275 | 291 | ||
276 | cmdline = "orinoco_hopper "; | 292 | cmdline = "orinoco_hopper "; |