-rw-r--r-- | examples/opienet/miniwellenreiter/miniwellenreiter.cpp | 2 | ||||
-rw-r--r-- | examples/opienet/onetworkdemo/onetworkdemo.cpp | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/examples/opienet/miniwellenreiter/miniwellenreiter.cpp b/examples/opienet/miniwellenreiter/miniwellenreiter.cpp index ebd3b5f..ba9d2ca 100644 --- a/examples/opienet/miniwellenreiter/miniwellenreiter.cpp +++ b/examples/opienet/miniwellenreiter/miniwellenreiter.cpp | |||
@@ -1,234 +1,234 @@ | |||
1 | #include <qdict.h> | 1 | #include <qdict.h> |
2 | #include <qsocketnotifier.h> | 2 | #include <qsocketnotifier.h> |
3 | #include <qstring.h> | 3 | #include <qstring.h> |
4 | #include <opie2/onetwork.h> | 4 | #include <opie2/onetwork.h> |
5 | #include <qapplication.h> | 5 | #include <qapplication.h> |
6 | #include <opie2/opcap.h> | 6 | #include <opie2/opcap.h> |
7 | #include <cerrno> | 7 | #include <cerrno> |
8 | #include <cstdio> | 8 | #include <cstdio> |
9 | #include <cstdlib> | 9 | #include <cstdlib> |
10 | #include <cstring> | 10 | #include <cstring> |
11 | 11 | ||
12 | 12 | ||
13 | using namespace Opie::Net; | 13 | using namespace Opie::Net; |
14 | //======================== Station help class =============================== | 14 | //======================== Station help class =============================== |
15 | 15 | ||
16 | class Station | 16 | class Station |
17 | { | 17 | { |
18 | public: | 18 | public: |
19 | Station( QString t, int c, bool w ) : type(t), channel(c), wep(w), beacons(1) {}; | 19 | Station( QString t, int c, bool w ) : type(t), channel(c), wep(w), beacons(1) {}; |
20 | ~Station() {}; | 20 | ~Station() {}; |
21 | 21 | ||
22 | QString type; | 22 | QString type; |
23 | int channel; | 23 | int channel; |
24 | bool wep; | 24 | bool wep; |
25 | int beacons; | 25 | int beacons; |
26 | }; | 26 | }; |
27 | 27 | ||
28 | QDict<Station> stations; | 28 | QDict<Station> stations; |
29 | 29 | ||
30 | //======================== Application class =============================== | 30 | //======================== Application class =============================== |
31 | 31 | ||
32 | class Wellenreiter : public QApplication | 32 | class Wellenreiter : public QApplication |
33 | { | 33 | { |
34 | Q_OBJECT | 34 | Q_OBJECT |
35 | public: | 35 | public: |
36 | Wellenreiter( int argc, char** argv ) : QApplication( argc, argv ), channel( 1 ) | 36 | Wellenreiter( int argc, char** argv ) : QApplication( argc, argv ), channel( 1 ) |
37 | { | 37 | { |
38 | 38 | ||
39 | ONetwork* net = ONetwork::instance(); | 39 | ONetwork* net = ONetwork::instance(); |
40 | 40 | ||
41 | if ( argc < 3 ) | 41 | if ( argc < 3 ) |
42 | { | 42 | { |
43 | printf( "Usage: ./%s <interface> <driver> <interval>\n", argv[0] ); | 43 | printf( "Usage: ./%s <interface> <driver> <interval>\n", argv[0] ); |
44 | printf( "\n" ); | 44 | printf( "\n" ); |
45 | printf( "Valid wireless interfaces (detected) are:\n" ); | 45 | printf( "Valid wireless interfaces (detected) are:\n" ); |
46 | 46 | ||
47 | ONetwork::InterfaceIterator it = net->iterator(); | 47 | ONetwork::InterfaceIterator it = net->iterator(); |
48 | while ( it.current() ) | 48 | while ( it.current() ) |
49 | { | 49 | { |
50 | if ( it.current()->isWireless() ) | 50 | if ( it.current()->isWireless() ) |
51 | { | 51 | { |
52 | printf( " - '%s' (MAC=%s) (IPv4=%s)\n", (const char*) it.current()->name(), | 52 | printf( " - '%s' (MAC=%s) (IPv4=%s)\n", (const char*) it.current()->name(), |
53 | (const char*) it.current()->macAddress().toString(), | 53 | (const char*) it.current()->macAddress().toString(), |
54 | (const char*) it.current()->ipV4Address() ); | 54 | (const char*) it.current()->ipV4Address().toString() ); |
55 | } | 55 | } |
56 | ++it; | 56 | ++it; |
57 | } | 57 | } |
58 | exit( -1 ); | 58 | exit( -1 ); |
59 | } | 59 | } |
60 | 60 | ||
61 | printf( "*******************************************************************\n" ); | 61 | printf( "*******************************************************************\n" ); |
62 | printf( "* Wellenreiter mini edition 1.0.0 (C) 2003 Michael 'Mickey' Lauer *\n" ); | 62 | printf( "* Wellenreiter mini edition 1.0.0 (C) 2003 Michael 'Mickey' Lauer *\n" ); |
63 | printf( "*******************************************************************\n" ); | 63 | printf( "*******************************************************************\n" ); |
64 | printf( "\n\n" ); | 64 | printf( "\n\n" ); |
65 | 65 | ||
66 | QString interface( argv[1] ); | 66 | QString interface( argv[1] ); |
67 | QString driver( argv[2] ); | 67 | QString driver( argv[2] ); |
68 | 68 | ||
69 | printf( "Trying to use '%s' as %s-controlled device...\n", (const char*) interface, (const char*) driver ); | 69 | printf( "Trying to use '%s' as %s-controlled device...\n", (const char*) interface, (const char*) driver ); |
70 | 70 | ||
71 | // sanity checks before downcasting | 71 | // sanity checks before downcasting |
72 | ONetworkInterface* iface = net->interface( interface ); | 72 | ONetworkInterface* iface = net->interface( interface ); |
73 | if ( !iface ) | 73 | if ( !iface ) |
74 | { | 74 | { |
75 | printf( "Interface '%s' doesn't exist. Exiting.\n", (const char*) interface ); | 75 | printf( "Interface '%s' doesn't exist. Exiting.\n", (const char*) interface ); |
76 | exit( -1 ); | 76 | exit( -1 ); |
77 | } | 77 | } |
78 | if ( !iface->isWireless() ) | 78 | if ( !iface->isWireless() ) |
79 | { | 79 | { |
80 | printf( "Interface '%s' doesn't support wireless extensions. Exiting.\n", (const char*) interface ); | 80 | printf( "Interface '%s' doesn't support wireless extensions. Exiting.\n", (const char*) interface ); |
81 | exit( -1 ); | 81 | exit( -1 ); |
82 | } | 82 | } |
83 | 83 | ||
84 | // downcast should be safe now | 84 | // downcast should be safe now |
85 | wiface = (OWirelessNetworkInterface*) iface; | 85 | wiface = (OWirelessNetworkInterface*) iface; |
86 | printf( "Using wireless interface '%s' for scanning (current SSID is '%s')...\n", (const char*) interface, (const char*) wiface->SSID() ); | 86 | printf( "Using wireless interface '%s' for scanning (current SSID is '%s')...\n", (const char*) interface, (const char*) wiface->SSID() ); |
87 | 87 | ||
88 | // ifconfig +promisc the interface to receive all packets | 88 | // ifconfig +promisc the interface to receive all packets |
89 | if ( !wiface->promiscuousMode() ) | 89 | if ( !wiface->promiscuousMode() ) |
90 | { | 90 | { |
91 | printf( "Interface status is not promisc... switching to promisc... " ); | 91 | printf( "Interface status is not promisc... switching to promisc... " ); |
92 | wiface->setPromiscuousMode( true ); | 92 | wiface->setPromiscuousMode( true ); |
93 | if ( !wiface->promiscuousMode() ) | 93 | if ( !wiface->promiscuousMode() ) |
94 | { | 94 | { |
95 | printf( "failed (%s). Exiting.\n", strerror( errno ) ); | 95 | printf( "failed (%s). Exiting.\n", strerror( errno ) ); |
96 | exit( -1 ); | 96 | exit( -1 ); |
97 | } | 97 | } |
98 | else | 98 | else |
99 | { | 99 | { |
100 | printf( "ok.\n" ); | 100 | printf( "ok.\n" ); |
101 | } | 101 | } |
102 | } | 102 | } |
103 | else | 103 | else |
104 | printf( "Interface status is already promisc - good.\n" ); | 104 | printf( "Interface status is already promisc - good.\n" ); |
105 | 105 | ||
106 | // connect a monitoring strategy to the interface | 106 | // connect a monitoring strategy to the interface |
107 | if ( driver == "orinoco" ) | 107 | if ( driver == "orinoco" ) |
108 | new OOrinocoMonitoringInterface( wiface, false ); | 108 | new OOrinocoMonitoringInterface( wiface, false ); |
109 | else | 109 | else |
110 | if ( driver == "hostap" ) | 110 | if ( driver == "hostap" ) |
111 | new OHostAPMonitoringInterface( wiface, false ); | 111 | new OHostAPMonitoringInterface( wiface, false ); |
112 | else | 112 | else |
113 | if ( driver == "wlan-ng" ) | 113 | if ( driver == "wlan-ng" ) |
114 | new OWlanNGMonitoringInterface( wiface, false ); | 114 | new OWlanNGMonitoringInterface( wiface, false ); |
115 | else | 115 | else |
116 | { | 116 | { |
117 | printf( "Unknown driver. Exiting\n" ); | 117 | printf( "Unknown driver. Exiting\n" ); |
118 | exit( -1 ); | 118 | exit( -1 ); |
119 | } | 119 | } |
120 | 120 | ||
121 | // enable monitoring mode | 121 | // enable monitoring mode |
122 | printf( "Enabling monitor mode...\n" ); | 122 | printf( "Enabling monitor mode...\n" ); |
123 | wiface->setMode( "monitor" ); | 123 | wiface->setMode( "monitor" ); |
124 | 124 | ||
125 | // open a packet capturer | 125 | // open a packet capturer |
126 | cap = new OPacketCapturer(); | 126 | cap = new OPacketCapturer(); |
127 | cap->open( interface ); | 127 | cap->open( interface ); |
128 | if ( !cap->isOpen() ) | 128 | if ( !cap->isOpen() ) |
129 | { | 129 | { |
130 | printf( "Unable to open libpcap (%s). Exiting.\n", strerror( errno ) ); | 130 | printf( "Unable to open libpcap (%s). Exiting.\n", strerror( errno ) ); |
131 | exit( -1 ); | 131 | exit( -1 ); |
132 | } | 132 | } |
133 | 133 | ||
134 | // set capturer to non-blocking mode | 134 | // set capturer to non-blocking mode |
135 | cap->setBlocking( false ); | 135 | cap->setBlocking( false ); |
136 | 136 | ||
137 | // start channel hopper | 137 | // start channel hopper |
138 | //wiface->setChannelHopping( 1000 ); | 138 | //wiface->setChannelHopping( 1000 ); |
139 | 139 | ||
140 | // connect | 140 | // connect |
141 | connect( cap, SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) ); | 141 | connect( cap, SIGNAL( receivedPacket(OPacket*) ), this, SLOT( receivePacket(OPacket*) ) ); |
142 | // timer | 142 | // timer |
143 | startTimer( 1000 ); | 143 | startTimer( 1000 ); |
144 | 144 | ||
145 | } | 145 | } |
146 | 146 | ||
147 | ~Wellenreiter() {}; | 147 | ~Wellenreiter() {}; |
148 | 148 | ||
149 | public slots: | 149 | public slots: |
150 | virtual void timerEvent(QTimerEvent* e) | 150 | virtual void timerEvent(QTimerEvent* e) |
151 | { | 151 | { |
152 | wiface->setChannel( channel++ ); | 152 | wiface->setChannel( channel++ ); |
153 | if ( channel == 14 ) channel = 1; | 153 | if ( channel == 14 ) channel = 1; |
154 | } | 154 | } |
155 | 155 | ||
156 | void receivePacket(OPacket* p) | 156 | void receivePacket(OPacket* p) |
157 | { | 157 | { |
158 | if (!p) | 158 | if (!p) |
159 | { | 159 | { |
160 | printf( "(empty packet received)\n" ); | 160 | printf( "(empty packet received)\n" ); |
161 | return; | 161 | return; |
162 | } | 162 | } |
163 | 163 | ||
164 | OWaveLanManagementPacket* beacon = (OWaveLanManagementPacket*) p->child( "802.11 Management" ); | 164 | OWaveLanManagementPacket* beacon = (OWaveLanManagementPacket*) p->child( "802.11 Management" ); |
165 | if ( beacon ) | 165 | if ( beacon ) |
166 | { | 166 | { |
167 | OWaveLanManagementSSID* ssid = static_cast<OWaveLanManagementSSID*>( p->child( "802.11 SSID" ) ); | 167 | OWaveLanManagementSSID* ssid = static_cast<OWaveLanManagementSSID*>( p->child( "802.11 SSID" ) ); |
168 | QString essid = ssid ? ssid->ID() : QString::fromLatin1( "<unknown>" ); | 168 | QString essid = ssid ? ssid->ID() : QString::fromLatin1( "<unknown>" ); |
169 | 169 | ||
170 | if ( stations.find( essid ) ) | 170 | if ( stations.find( essid ) ) |
171 | stations[essid]->beacons++; | 171 | stations[essid]->beacons++; |
172 | else | 172 | else |
173 | { | 173 | { |
174 | printf( "found new network @ channel %d, SSID = '%s'\n", wiface->channel(), (const char*) essid ); | 174 | printf( "found new network @ channel %d, SSID = '%s'\n", wiface->channel(), (const char*) essid ); |
175 | stations.insert( essid, new Station( "unknown", wiface->channel(), | 175 | stations.insert( essid, new Station( "unknown", wiface->channel(), |
176 | ((OWaveLanPacket*) beacon->parent())->usesWep() ) ); | 176 | ((OWaveLanPacket*) beacon->parent())->usesWep() ) ); |
177 | } | 177 | } |
178 | return; | 178 | return; |
179 | } | 179 | } |
180 | 180 | ||
181 | OWaveLanDataPacket* data = (OWaveLanDataPacket*) p->child( "802.11 Data" ); | 181 | OWaveLanDataPacket* data = (OWaveLanDataPacket*) p->child( "802.11 Data" ); |
182 | if ( data ) | 182 | if ( data ) |
183 | { | 183 | { |
184 | OWaveLanPacket* wlan = (OWaveLanPacket*) p->child( "802.11" ); | 184 | OWaveLanPacket* wlan = (OWaveLanPacket*) p->child( "802.11" ); |
185 | if ( wlan->fromDS() && !wlan->toDS() ) | 185 | if ( wlan->fromDS() && !wlan->toDS() ) |
186 | { | 186 | { |
187 | printf( "FromDS: '%s' -> '%s' via '%s'\n", | 187 | printf( "FromDS: '%s' -> '%s' via '%s'\n", |
188 | (const char*) wlan->macAddress3().toString(true), | 188 | (const char*) wlan->macAddress3().toString(true), |
189 | (const char*) wlan->macAddress1().toString(true), | 189 | (const char*) wlan->macAddress1().toString(true), |
190 | (const char*) wlan->macAddress2().toString(true) ); | 190 | (const char*) wlan->macAddress2().toString(true) ); |
191 | } | 191 | } |
192 | else | 192 | else |
193 | if ( !wlan->fromDS() && wlan->toDS() ) | 193 | if ( !wlan->fromDS() && wlan->toDS() ) |
194 | { | 194 | { |
195 | printf( "ToDS: '%s' -> '%s' via '%s'\n", | 195 | printf( "ToDS: '%s' -> '%s' via '%s'\n", |
196 | (const char*) wlan->macAddress2().toString(true), | 196 | (const char*) wlan->macAddress2().toString(true), |
197 | (const char*) wlan->macAddress3().toString(true), | 197 | (const char*) wlan->macAddress3().toString(true), |
198 | (const char*) wlan->macAddress1().toString(true) ); | 198 | (const char*) wlan->macAddress1().toString(true) ); |
199 | } | 199 | } |
200 | else | 200 | else |
201 | if ( wlan->fromDS() && wlan->toDS() ) | 201 | if ( wlan->fromDS() && wlan->toDS() ) |
202 | { | 202 | { |
203 | printf( "WSD(bridge): '%s' -> '%s' via '%s' and '%s'\n", | 203 | printf( "WSD(bridge): '%s' -> '%s' via '%s' and '%s'\n", |
204 | (const char*) wlan->macAddress4().toString(true), | 204 | (const char*) wlan->macAddress4().toString(true), |
205 | (const char*) wlan->macAddress3().toString(true), | 205 | (const char*) wlan->macAddress3().toString(true), |
206 | (const char*) wlan->macAddress1().toString(true), | 206 | (const char*) wlan->macAddress1().toString(true), |
207 | (const char*) wlan->macAddress2().toString(true) ); | 207 | (const char*) wlan->macAddress2().toString(true) ); |
208 | } | 208 | } |
209 | else | 209 | else |
210 | { | 210 | { |
211 | printf( "IBSS(AdHoc): '%s' -> '%s' (Cell: '%s')'\n", | 211 | printf( "IBSS(AdHoc): '%s' -> '%s' (Cell: '%s')'\n", |
212 | (const char*) wlan->macAddress2().toString(true), | 212 | (const char*) wlan->macAddress2().toString(true), |
213 | (const char*) wlan->macAddress1().toString(true), | 213 | (const char*) wlan->macAddress1().toString(true), |
214 | (const char*) wlan->macAddress3().toString(true) ); | 214 | (const char*) wlan->macAddress3().toString(true) ); |
215 | } | 215 | } |
216 | return; | 216 | return; |
217 | } | 217 | } |
218 | } | 218 | } |
219 | private: | 219 | private: |
220 | OPacketCapturer* cap; | 220 | OPacketCapturer* cap; |
221 | OWirelessNetworkInterface* wiface; | 221 | OWirelessNetworkInterface* wiface; |
222 | int channel; | 222 | int channel; |
223 | }; | 223 | }; |
224 | 224 | ||
225 | 225 | ||
226 | int main( int argc, char** argv ) | 226 | int main( int argc, char** argv ) |
227 | { | 227 | { |
228 | Wellenreiter w( argc, argv ); | 228 | Wellenreiter w( argc, argv ); |
229 | w.exec(); | 229 | w.exec(); |
230 | return 0; | 230 | return 0; |
231 | } | 231 | } |
232 | 232 | ||
233 | #include "miniwellenreiter.moc" | 233 | #include "miniwellenreiter.moc" |
234 | 234 | ||
diff --git a/examples/opienet/onetworkdemo/onetworkdemo.cpp b/examples/opienet/onetworkdemo/onetworkdemo.cpp index b3a1115..e8958dc 100644 --- a/examples/opienet/onetworkdemo/onetworkdemo.cpp +++ b/examples/opienet/onetworkdemo/onetworkdemo.cpp | |||
@@ -1,181 +1,181 @@ | |||
1 | /* | 1 | /* |
2 | =. This file is part of the Opie Project | 2 | =. This file is part of the Opie Project |
3 | .=l. Copyright (C) 2004 Opie Team <opie-devel@handhelds.org> | 3 | .=l. Copyright (C) 2004 Opie Team <opie-devel@handhelds.org> |
4 | .>+-= | 4 | .>+-= |
5 | _;:, .> :=|. This library is free software; you can | 5 | _;:, .> :=|. This library is free software; you can |
6 | .> <`_, > . <= redistribute it and/or modify it under | 6 | .> <`_, > . <= redistribute it and/or modify it under |
7 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 7 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
8 | .="- .-=="i, .._ License as published by the Free Software | 8 | .="- .-=="i, .._ License as published by the Free Software |
9 | - . .-<_> .<> Foundation; either version 2 of the License, | 9 | - . .-<_> .<> Foundation; either version 2 of the License, |
10 | ._= =} : or (at your option) any later version. | 10 | ._= =} : or (at your option) any later version. |
11 | .%`+i> _;_. | 11 | .%`+i> _;_. |
12 | .i_,=:_. -<s. This library is distributed in the hope that | 12 | .i_,=:_. -<s. This library is distributed in the hope that |
13 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 13 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
14 | : .. .:, . . . without even the implied warranty of | 14 | : .. .:, . . . without even the implied warranty of |
15 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 15 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
16 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 16 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
17 | ..}^=.= = ; Library General Public License for more | 17 | ..}^=.= = ; Library General Public License for more |
18 | ++= -. .` .: details. | 18 | ++= -. .` .: details. |
19 | : = ...= . :.=- | 19 | : = ...= . :.=- |
20 | -. .:....=;==+<; You should have received a copy of the GNU | 20 | -. .:....=;==+<; You should have received a copy of the GNU |
21 | -_. . . )=. = Library General Public License along with | 21 | -_. . . )=. = Library General Public License along with |
22 | -- :-=` this library; see the file COPYING.LIB. | 22 | -- :-=` this library; see the file COPYING.LIB. |
23 | If not, write to the Free Software Foundation, | 23 | If not, write to the Free Software Foundation, |
24 | Inc., 59 Temple Place - Suite 330, | 24 | Inc., 59 Temple Place - Suite 330, |
25 | Boston, MA 02111-1307, USA. | 25 | Boston, MA 02111-1307, USA. |
26 | 26 | ||
27 | */ | 27 | */ |
28 | 28 | ||
29 | /* OPIE */ | 29 | /* OPIE */ |
30 | #include <opie2/onetwork.h> | 30 | #include <opie2/onetwork.h> |
31 | #include <opie2/ostation.h> | 31 | #include <opie2/ostation.h> |
32 | #include <opie2/omanufacturerdb.h> | 32 | #include <opie2/omanufacturerdb.h> |
33 | #include <opie2/odebug.h> | 33 | #include <opie2/odebug.h> |
34 | 34 | ||
35 | /* STD */ | 35 | /* STD */ |
36 | #include <unistd.h> | 36 | #include <unistd.h> |
37 | 37 | ||
38 | using namespace Opie::Net; | 38 | using namespace Opie::Net; |
39 | 39 | ||
40 | int main( int argc, char** argv ) | 40 | int main( int argc, char** argv ) |
41 | { | 41 | { |
42 | odebug << "OPIE Network Demo" << oendl; | 42 | odebug << "OPIE Network Demo" << oendl; |
43 | 43 | ||
44 | ONetwork* net = ONetwork::instance(); | 44 | ONetwork* net = ONetwork::instance(); |
45 | 45 | ||
46 | ONetwork::InterfaceIterator it = net->iterator(); | 46 | ONetwork::InterfaceIterator it = net->iterator(); |
47 | 47 | ||
48 | while ( it.current() ) | 48 | while ( it.current() ) |
49 | { | 49 | { |
50 | odebug << "DEMO: ONetwork contains Interface '" << it.current()->name() << "'" << oendl; | 50 | odebug << "DEMO: ONetwork contains Interface '" << it.current()->name() << "'" << oendl; |
51 | ONetworkInterfaceDriverInfo info = it.current()->driverInfo(); | 51 | ONetworkInterfaceDriverInfo info = it.current()->driverInfo(); |
52 | odebug << "DEMO: DriverName reported as '" << info.name() << "'" << oendl; | 52 | odebug << "DEMO: DriverName reported as '" << info.name() << "'" << oendl; |
53 | odebug << "DEMO: DriverVersion reported as '" << info.version() << "'" << oendl; | 53 | odebug << "DEMO: DriverVersion reported as '" << info.version() << "'" << oendl; |
54 | odebug << "DEMO: DriverFirmware reported as '" << info.firmware() << "'" << oendl; | 54 | odebug << "DEMO: DriverFirmware reported as '" << info.firmware() << "'" << oendl; |
55 | odebug << "DEMO: DriverBus reported as '" << info.bus() << "'" << oendl; | 55 | odebug << "DEMO: DriverBus reported as '" << info.bus() << "'" << oendl; |
56 | odebug << "DEMO: Datalink code is '" << it.current()->dataLinkType() << "'" << oendl; | 56 | odebug << "DEMO: Datalink code is '" << it.current()->dataLinkType() << "'" << oendl; |
57 | odebug << "DEMO: MAC Address is '" << it.current()->macAddress().toString() << "'" << oendl; | 57 | odebug << "DEMO: MAC Address is '" << it.current()->macAddress().toString() << "'" << oendl; |
58 | odebug << "DEMO: MAC Address is '" << it.current()->macAddress().toString(true) << "'" << oendl; | 58 | odebug << "DEMO: MAC Address is '" << it.current()->macAddress().toString(true) << "'" << oendl; |
59 | odebug << "DEMO: MAC Manufacturer seems to be '" << it.current()->macAddress().manufacturer() << "'" << oendl; | 59 | odebug << "DEMO: MAC Manufacturer seems to be '" << it.current()->macAddress().manufacturer() << "'" << oendl; |
60 | odebug << "DEMO: Manufacturertest1 = '" << OManufacturerDB::instance()->lookupExt( "08:00:87" ) << "'" << oendl; | 60 | odebug << "DEMO: Manufacturertest1 = '" << OManufacturerDB::instance()->lookupExt( "08:00:87" ) << "'" << oendl; |
61 | odebug << "DEMO: Manufacturertest2 = '" << OManufacturerDB::instance()->lookupExt( "E2:0C:0F" ) << "'" << oendl; | 61 | odebug << "DEMO: Manufacturertest2 = '" << OManufacturerDB::instance()->lookupExt( "E2:0C:0F" ) << "'" << oendl; |
62 | odebug << "Demo: IPv4 Address is '" << it.current()->ipV4Address() << "'" << oendl; | 62 | odebug << "Demo: IPv4 Address is '" << it.current()->ipV4Address().toString() << "'" << oendl; |
63 | if ( it.current()->isWireless() ) | 63 | if ( it.current()->isWireless() ) |
64 | { | 64 | { |
65 | OWirelessNetworkInterface* iface = static_cast<OWirelessNetworkInterface*>( it.current() ); | 65 | OWirelessNetworkInterface* iface = static_cast<OWirelessNetworkInterface*>( it.current() ); |
66 | odebug << "DEMO: '" << iface->name() << "' seems to feature the wireless extensions." << oendl; | 66 | odebug << "DEMO: '" << iface->name() << "' seems to feature the wireless extensions." << oendl; |
67 | odebug << "DEMO: Current SSID is '" << iface->SSID() << "'" << oendl; | 67 | odebug << "DEMO: Current SSID is '" << iface->SSID() << "'" << oendl; |
68 | odebug << "DEMO: Antenna is tuned to '" << iface->frequency() << "', that is channel " << iface->channel() << "" << oendl; | 68 | odebug << "DEMO: Antenna is tuned to '" << iface->frequency() << "', that is channel " << iface->channel() << "" << oendl; |
69 | 69 | ||
70 | //if ( iface->mode() == OWirelessNetworkInterface::adhoc ) | 70 | //if ( iface->mode() == OWirelessNetworkInterface::adhoc ) |
71 | //{ | 71 | //{ |
72 | //odebug << "DEMO: Associated AP has MAC Address '" << iface->associatedAP().toString() << "'" << oendl; | 72 | //odebug << "DEMO: Associated AP has MAC Address '" << iface->associatedAP().toString() << "'" << oendl; |
73 | //} | 73 | //} |
74 | 74 | ||
75 | /* | 75 | /* |
76 | 76 | ||
77 | // nickname | 77 | // nickname |
78 | odebug << "DEMO: Current NickName is '" << iface->nickName() << "'" << oendl; | 78 | odebug << "DEMO: Current NickName is '" << iface->nickName() << "'" << oendl; |
79 | iface->setNickName( "MyNickName" ); | 79 | iface->setNickName( "MyNickName" ); |
80 | if ( iface->nickName() != "MyNickName" ) | 80 | if ( iface->nickName() != "MyNickName" ) |
81 | odebug << "DEMO: Warning! Can't change nickname" << oendl; | 81 | odebug << "DEMO: Warning! Can't change nickname" << oendl; |
82 | else | 82 | else |
83 | odebug << "DEMO: Nickname change successful." << oendl; | 83 | odebug << "DEMO: Nickname change successful." << oendl; |
84 | 84 | ||
85 | /* | 85 | /* |
86 | 86 | ||
87 | // operation mode | 87 | // operation mode |
88 | odebug << "DEMO: Current OperationMode is '" << iface->mode() << "'" << oendl; | 88 | odebug << "DEMO: Current OperationMode is '" << iface->mode() << "'" << oendl; |
89 | iface->setMode( "adhoc" ); | 89 | iface->setMode( "adhoc" ); |
90 | if ( iface->mode() != "adhoc" ) | 90 | if ( iface->mode() != "adhoc" ) |
91 | odebug << "DEMO: Warning! Can't change operation mode" << oendl; | 91 | odebug << "DEMO: Warning! Can't change operation mode" << oendl; |
92 | else | 92 | else |
93 | odebug << "DEMO: Operation Mode change successful." << oendl; | 93 | odebug << "DEMO: Operation Mode change successful." << oendl; |
94 | 94 | ||
95 | // RF channel | 95 | // RF channel |
96 | odebug << "DEMO: Current Channel is '" << iface->channel() << "'" << oendl; | 96 | odebug << "DEMO: Current Channel is '" << iface->channel() << "'" << oendl; |
97 | iface->setChannel( 1 ); | 97 | iface->setChannel( 1 ); |
98 | if ( iface->channel() != 1 ) | 98 | if ( iface->channel() != 1 ) |
99 | odebug << "DEMO: Warning! Can't change RF channel" << oendl; | 99 | odebug << "DEMO: Warning! Can't change RF channel" << oendl; |
100 | else | 100 | else |
101 | odebug << "DEMO: RF channel change successful." << oendl; | 101 | odebug << "DEMO: RF channel change successful." << oendl; |
102 | 102 | ||
103 | iface->setMode( "managed" ); | 103 | iface->setMode( "managed" ); |
104 | 104 | ||
105 | */ | 105 | */ |
106 | 106 | ||
107 | /* | 107 | /* |
108 | 108 | ||
109 | // network scan | 109 | // network scan |
110 | 110 | ||
111 | OStationList* stations = iface->scanNetwork(); | 111 | OStationList* stations = iface->scanNetwork(); |
112 | if ( stations ) | 112 | if ( stations ) |
113 | { | 113 | { |
114 | odebug << "DEMO: # of stations around = " << stations->count() << "" << oendl; | 114 | odebug << "DEMO: # of stations around = " << stations->count() << "" << oendl; |
115 | OStation* station; | 115 | OStation* station; |
116 | for ( station = stations->first(); station != 0; station = stations->next() ) | 116 | for ( station = stations->first(); station != 0; station = stations->next() ) |
117 | { | 117 | { |
118 | odebug << "DEMO: station dump following..." << oendl; | 118 | odebug << "DEMO: station dump following..." << oendl; |
119 | station->dump(); | 119 | station->dump(); |
120 | } | 120 | } |
121 | } | 121 | } |
122 | 122 | ||
123 | else | 123 | else |
124 | { | 124 | { |
125 | odebug << "DEMO: Warning! Scan didn't work!" << oendl; | 125 | odebug << "DEMO: Warning! Scan didn't work!" << oendl; |
126 | } | 126 | } |
127 | 127 | ||
128 | /* | 128 | /* |
129 | 129 | ||
130 | // first some wrong calls to check if this is working | 130 | // first some wrong calls to check if this is working |
131 | iface->setPrivate( "seppel", 10 ); | 131 | iface->setPrivate( "seppel", 10 ); |
132 | iface->setPrivate( "monitor", 0 ); | 132 | iface->setPrivate( "monitor", 0 ); |
133 | 133 | ||
134 | // now the real deal | 134 | // now the real deal |
135 | iface->setPrivate( "monitor", 2, 2, 3 ); | 135 | iface->setPrivate( "monitor", 2, 2, 3 ); |
136 | 136 | ||
137 | // trying to set hw address to 12:34:56:AB:CD:EF | 137 | // trying to set hw address to 12:34:56:AB:CD:EF |
138 | 138 | ||
139 | /* | 139 | /* |
140 | 140 | ||
141 | OMacAddress addr = OMacAddress::fromString( "12:34:56:AB:CD:EF" ); | 141 | OMacAddress addr = OMacAddress::fromString( "12:34:56:AB:CD:EF" ); |
142 | iface->setUp( false ); | 142 | iface->setUp( false ); |
143 | iface->setMacAddress( addr ); | 143 | iface->setMacAddress( addr ); |
144 | iface->setUp( true ); | 144 | iface->setUp( true ); |
145 | odebug << "DEMO: MAC Address now is '" << iface->macAddress().toString() << "'" << oendl; | 145 | odebug << "DEMO: MAC Address now is '" << iface->macAddress().toString() << "'" << oendl; |
146 | 146 | ||
147 | */ | 147 | */ |
148 | 148 | ||
149 | // monitor test | 149 | // monitor test |
150 | 150 | ||
151 | 151 | ||
152 | 152 | ||
153 | odebug << "DEMO: current interface mode is '" << iface->mode() << "'" << oendl; | 153 | odebug << "DEMO: current interface mode is '" << iface->mode() << "'" << oendl; |
154 | iface->setMode( "monitor" ); | 154 | iface->setMode( "monitor" ); |
155 | odebug << "DEMO: current interface mode is '" << iface->mode() << "'" << oendl; | 155 | odebug << "DEMO: current interface mode is '" << iface->mode() << "'" << oendl; |
156 | 156 | ||
157 | sleep( 1 ); | 157 | sleep( 1 ); |
158 | 158 | ||
159 | iface->setChannel( 1 ); | 159 | iface->setChannel( 1 ); |
160 | iface->setMode( "managed" ); | 160 | iface->setMode( "managed" ); |
161 | 161 | ||
162 | //sleep( 1 ); | 162 | //sleep( 1 ); |
163 | odebug << "DEMO: current interface mode is '" << iface->mode() << "'" << oendl; | 163 | odebug << "DEMO: current interface mode is '" << iface->mode() << "'" << oendl; |
164 | 164 | ||
165 | /*iface->setMode( "adhoc" ); | 165 | /*iface->setMode( "adhoc" ); |
166 | sleep( 1 ); | 166 | sleep( 1 ); |
167 | odebug << "DEMO: current interface mode is '" << iface->mode() << "'" << oendl; | 167 | odebug << "DEMO: current interface mode is '" << iface->mode() << "'" << oendl; |
168 | iface->setMode( "managed" ); | 168 | iface->setMode( "managed" ); |
169 | sleep( 1 ); | 169 | sleep( 1 ); |
170 | odebug << "DEMO: current interface mode is '" << iface->mode() << "'" << oendl; | 170 | odebug << "DEMO: current interface mode is '" << iface->mode() << "'" << oendl; |
171 | iface->setMode( "master" ); | 171 | iface->setMode( "master" ); |
172 | sleep( 1 ); | 172 | sleep( 1 ); |
173 | odebug << "DEMO: current interface mode is '" << iface->mode() << "'" << oendl; */ | 173 | odebug << "DEMO: current interface mode is '" << iface->mode() << "'" << oendl; */ |
174 | 174 | ||
175 | } | 175 | } |
176 | ++it; | 176 | ++it; |
177 | } | 177 | } |
178 | 178 | ||
179 | return 0; | 179 | return 0; |
180 | 180 | ||
181 | } | 181 | } |