summaryrefslogtreecommitdiff
path: root/libopie2/opienet
authormickeyl <mickeyl>2003-04-07 14:40:28 (UTC)
committer mickeyl <mickeyl>2003-04-07 14:40:28 (UTC)
commit75f029f87d4c84b37ccfe1c81ef205a6cd5fca79 (patch) (unidiff)
tree293f6709a304aed084622e61633c945124836296 /libopie2/opienet
parent46cda1cdb4c71de6e2627a54f31d1b56cc85ee85 (diff)
downloadopie-75f029f87d4c84b37ccfe1c81ef205a6cd5fca79.zip
opie-75f029f87d4c84b37ccfe1c81ef205a6cd5fca79.tar.gz
opie-75f029f87d4c84b37ccfe1c81ef205a6cd5fca79.tar.bz2
started to document the whole stuff
Diffstat (limited to 'libopie2/opienet') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opienet/onetwork.h181
1 files changed, 160 insertions, 21 deletions
diff --git a/libopie2/opienet/onetwork.h b/libopie2/opienet/onetwork.h
index e249aee..10f52b8 100644
--- a/libopie2/opienet/onetwork.h
+++ b/libopie2/opienet/onetwork.h
@@ -1,322 +1,461 @@
1/* 1/*
2                 This file is part of the Opie Project 2                 This file is part of the Opie Project
3              Copyright (C) 2003 by the Wellenreiter team: 3              Copyright (C) 2003 by the Wellenreiter team:
4 Martin J. Muench <mjm@remote-exploit.org> 4 Martin J. Muench <mjm@remote-exploit.org>
5 Max Moser <mmo@remote-exploit.org 5 Max Moser <mmo@remote-exploit.org
6 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> 6 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
7 =. 7 =.
8 .=l. 8 .=l.
9           .>+-= 9           .>+-=
10 _;:,     .>    :=|. This program is free software; you can 10 _;:,     .>    :=|. This program is free software; you can
11.> <`_,   >  .   <= redistribute it and/or modify it under 11.> <`_,   >  .   <= redistribute it and/or modify it under
12:`=1 )Y*s>-.--   : the terms of the GNU Library General Public 12:`=1 )Y*s>-.--   : the terms of the GNU Library General Public
13.="- .-=="i,     .._ License as published by the Free Software 13.="- .-=="i,     .._ License as published by the Free Software
14 - .   .-<_>     .<> Foundation; either version 2 of the License, 14 - .   .-<_>     .<> Foundation; either version 2 of the License,
15     ._= =}       : or (at your option) any later version. 15     ._= =}       : or (at your option) any later version.
16    .%`+i>       _;_. 16    .%`+i>       _;_.
17    .i_,=:_.      -<s. This program is distributed in the hope that 17    .i_,=:_.      -<s. This program is distributed in the hope that
18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY; 18     +  .  -:.       = it will be useful, but WITHOUT ANY WARRANTY;
19    : ..    .:,     . . . without even the implied warranty of 19    : ..    .:,     . . . without even the implied warranty of
20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A 20    =_        +     =;=|` MERCHANTABILITY or FITNESS FOR A
21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU 21  _.=:.       :    :=>`: PARTICULAR PURPOSE. See the GNU
22..}^=.=       =       ; Library General Public License for more 22..}^=.=       =       ; Library General Public License for more
23++=   -.     .`     .: details. 23++=   -.     .`     .: details.
24 :     =  ...= . :.=- 24 :     =  ...= . :.=-
25 -.   .:....=;==+<; You should have received a copy of the GNU 25 -.   .:....=;==+<; You should have received a copy of the GNU
26  -_. . .   )=.  = Library General Public License along with 26  -_. . .   )=.  = Library General Public License along with
27    --        :-=` this library; see the file COPYING.LIB. 27    --        :-=` this library; see the file COPYING.LIB.
28 If not, write to the Free Software Foundation, 28 If not, write to the Free Software Foundation,
29 Inc., 59 Temple Place - Suite 330, 29 Inc., 59 Temple Place - Suite 330,
30 Boston, MA 02111-1307, USA. 30 Boston, MA 02111-1307, USA.
31 31
32*/ 32*/
33 33
34#ifndef ONETWORK_H 34#ifndef ONETWORK_H
35#define ONETWORK_H 35#define ONETWORK_H
36 36
37/* QT */ 37/* QT */
38 38
39#include <qvaluelist.h> 39#include <qvaluelist.h>
40#include <qdict.h> 40#include <qdict.h>
41#include <qmap.h> 41#include <qmap.h>
42#include <qobject.h> 42#include <qobject.h>
43#include <qhostaddress.h> 43#include <qhostaddress.h>
44 44
45/* OPIE */ 45/* OPIE */
46 46
47#include <opie2/onetutils.h> 47#include <opie2/onetutils.h>
48 48
49#ifndef IFNAMSIZ 49#ifndef IFNAMSIZ
50#define IFNAMSIZ 16 50#define IFNAMSIZ 16
51#endif 51#endif
52#ifndef IW_MAX_PRIV_DEF 52#ifndef IW_MAX_PRIV_DEF
53#define IW_MAX_PRIV_DEF 128 53#define IW_MAX_PRIV_DEF 128
54#endif 54#endif
55 55
56// ML: Yeah, I hate to include kernel headers, but it's necessary here 56// ML: Yeah, I hate to include kernel headers, but it's necessary here
57// ML: Here comes an ugly hack to prevent <linux/wireless.h> including <linux/if.h> 57// ML: Here comes an ugly hack to prevent <linux/wireless.h> including <linux/if.h>
58// ML: which conflicts with the user header <net/if.h> 58// ML: which conflicts with the user header <net/if.h>
59// ML: We really a user header for the Wireless Extensions, something like <net/wireless.h> 59// ML: We really a user header for the Wireless Extensions, something like <net/wireless.h>
60// ML: I will drop Jean an mail on that subject 60// ML: I will drop Jean an mail on that subject
61 61
62#include <net/if.h> 62#include <net/if.h>
63#define _LINUX_IF_H 63#define _LINUX_IF_H
64#include <linux/wireless.h> 64#include <linux/wireless.h>
65 65
66class ONetworkInterface; 66class ONetworkInterface;
67class OWirelessNetworkInterface; 67class OWirelessNetworkInterface;
68class OChannelHopper; 68class OChannelHopper;
69class OMonitoringInterface; 69class OMonitoringInterface;
70 70
71/*====================================================================================== 71/*======================================================================================
72 * ONetwork 72 * ONetwork
73 *======================================================================================*/ 73 *======================================================================================*/
74 74
75/**
76 * @brief A container class for all network devices.
77 *
78 * This class provides access to all available network devices of your computer.
79 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
80 */
75class ONetwork : public QObject 81class ONetwork : public QObject
76{ 82{
77 Q_OBJECT 83 Q_OBJECT
78 84
79 public: 85 public:
80 typedef QDict<ONetworkInterface> InterfaceMap; 86 typedef QDict<ONetworkInterface> InterfaceMap;
81 typedef QDictIterator<ONetworkInterface> InterfaceIterator; 87 typedef QDictIterator<ONetworkInterface> InterfaceIterator;
82 88
83 public: 89 public:
90 /**
91 * @returns a pointer to the (one and only) @ref ONetwork instance.
92 */
84 static ONetwork* instance(); 93 static ONetwork* instance();
94 /**
95 * @returns an iterator usable for iterating through all network interfaces.
96 */
85 InterfaceIterator iterator() const; 97 InterfaceIterator iterator() const;
86 bool isWirelessInterface( const char* ) const; 98 /**
87 ONetworkInterface* interface( QString ) const; 99 * @returns true, if the @p interface supports the wireless extension protocol.
100 */
101 bool isWirelessInterface( const char* interface ) const;
102 /**
103 * @returns a pointer to the @ref ONetworkInterface object for the specified @p interface or 0, if not found
104 * @see ONetworkInterface
105 */
106 ONetworkInterface* interface( QString interface ) const;
88 107
89 protected: 108 protected:
90 ONetwork(); 109 ONetwork();
91 void synchronize(); 110 void synchronize();
92 111
93 private: 112 private:
94 static ONetwork* _instance; 113 static ONetwork* _instance;
95 InterfaceMap _interfaces; 114 InterfaceMap _interfaces;
96}; 115};
97 116
98 117
99/*====================================================================================== 118/*======================================================================================
100 * ONetworkInterface 119 * ONetworkInterface
101 *======================================================================================*/ 120 *======================================================================================*/
102 121
122/**
123 * @brief A network interface wrapper.
124 *
125 * This class provides a wrapper for a network interface. All the cumbersume details of
126 * Linux ioctls are hidden under a convenient high-level interface.
127 * @warning Most of the setting methods contained in this class require the appropriate
128 * process permissions to work.
129 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
130 */
103class ONetworkInterface : public QObject 131class ONetworkInterface : public QObject
104{ 132{
105 friend class OMonitoringInterface; 133 friend class OMonitoringInterface;
106 friend class OCiscoMonitoringInterface; 134 friend class OCiscoMonitoringInterface;
107 friend class OWlanNGMonitoringInterface; 135 friend class OWlanNGMonitoringInterface;
108 friend class OHostAPMonitoringInterface; 136 friend class OHostAPMonitoringInterface;
109 friend class OOrinocoMonitoringInterface; 137 friend class OOrinocoMonitoringInterface;
110 138
111 public: 139 public:
140 /**
141 * Constructor. Normally you don't create @ref ONetworkInterface objects yourself,
142 * but access them via @ref ONetwork::interface().
143 */
112 ONetworkInterface( QObject* parent, const char* name ); 144 ONetworkInterface( QObject* parent, const char* name );
145 /**
146 * Destructor.
147 */
113 virtual ~ONetworkInterface(); 148 virtual ~ONetworkInterface();
114 149 /**
115 void setMonitoring( OMonitoringInterface* ); 150 * Associates a @a monitoring interface with this network interface.
151 * @note This is currently only useful with @ref OWirelessNetworkInterface objects.
152 */
153 void setMonitoring( OMonitoringInterface* monitoring );
154 /**
155 * @returns the currently associated monitoring interface or 0, if no monitoring is associated.
156 */
116 OMonitoringInterface* monitoring() const; 157 OMonitoringInterface* monitoring() const;
158 /**
159 * Setting an interface to promiscuous mode enables the device to receive
160 * all packets on the shared medium - as opposed to packets which are addressed to this interface.
161 */
117 bool setPromiscuousMode( bool ); 162 bool setPromiscuousMode( bool );
163 /**
164 * @returns true if the interface is set to promiscuous mode.
165 */
118 bool promiscuousMode() const; 166 bool promiscuousMode() const;
167 /**
168 * Setting an interface to up enables it to receive packets.
169 */
119 bool setUp( bool ); 170 bool setUp( bool );
171 /**
172 * @returns true if the interface is up.
173 */
120 bool isUp() const; 174 bool isUp() const;
175 /*
176 * @returns true if the interface is a loopback interface.
177 */
121 bool isLoopback() const; 178 bool isLoopback() const;
179 /*
180 * @returns true if the interface is featuring supports the wireless extension protocol.
181 */
122 bool isWireless() const; 182 bool isWireless() const;
183 /*
184 * @returns the IPv4 address associated with this interface.
185 */
123 QString ipV4Address() const; 186 QString ipV4Address() const;
124 void setMacAddress( const OMacAddress& ); 187 /*
188 * Associate the MAC address @a addr with the interface.
189 * @note It can be necessary to shut down the interface prior to calling this method.
190 * @warning This is not supported by all drivers.
191 */
192 void setMacAddress( const OMacAddress& addr );
193 /*
194 * @returns the MAC address associated with this interface.
195 */
125 OMacAddress macAddress() const; 196 OMacAddress macAddress() const;
197 /*
198 * @returns the data link type currently associated with this interface.
199 * @see #include <net/if_arp.h> for possible values.
200 */
126 int dataLinkType() const; 201 int dataLinkType() const;
127 202
128 protected: 203 protected:
129 const int _sfd; 204 const int _sfd;
130 mutable ifreq _ifr; 205 mutable ifreq _ifr;
131 OMonitoringInterface* _mon; 206 OMonitoringInterface* _mon;
132 207
133 protected: 208 protected:
134 struct ifreq& ifr() const; 209 struct ifreq& ifr() const;
135 virtual void init(); 210 virtual void init();
136 bool ioctl( int call ) const; 211 bool ioctl( int call ) const;
137 bool ioctl( int call, struct ifreq& ) const; 212 bool ioctl( int call, struct ifreq& ) const;
138}; 213};
139 214
140/*====================================================================================== 215/*======================================================================================
141 * OChannelHopper 216 * OChannelHopper
142 *======================================================================================*/ 217 *======================================================================================*/
143 218
219/**
220 * @brief A radio frequency channel hopper.
221 *
222 * This class provides a channel hopper for radio frequencies. A channel hopper frequently
223 * changes the radio frequency channel of its associated @ref OWirelessNetworkInterface.
224 * This is necessary when in monitoring mode and scanning for other devices, because
225 * the radio frequency hardware can only detect packets sent on the same frequency.
226 * @author Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de>
227 */
144class OChannelHopper : public QObject 228class OChannelHopper : public QObject
145{ 229{
146 public: 230 public:
147 OChannelHopper( OWirelessNetworkInterface* ); 231 OChannelHopper( OWirelessNetworkInterface* );
148 virtual ~OChannelHopper(); 232 virtual ~OChannelHopper();
149 bool isActive() const; 233 bool isActive() const;
150 int channel() const; 234 int channel() const;
151 virtual void timerEvent( QTimerEvent* ); 235 virtual void timerEvent( QTimerEvent* );
152 void setInterval( int ); 236 void setInterval( int );
153 int interval() const; 237 int interval() const;
154 238
155 private: 239 private:
156 OWirelessNetworkInterface* _iface; 240 OWirelessNetworkInterface* _iface;
157 int _interval; 241 int _interval;
158 int _tid; 242 int _tid;
159 QValueList<int> _channels; 243 QValueList<int> _channels;
160 QValueList<int>::Iterator _channel; 244 QValueList<int>::Iterator _channel;
161
162}; 245};
163 246
164 247
165/*====================================================================================== 248/*======================================================================================
166 * OWirelessNetworkInterface 249 * OWirelessNetworkInterface
167 *======================================================================================*/ 250 *======================================================================================*/
168 251
252/**
253 * @brief A network interface wrapper for interfaces supporting the wireless extensions protocol.
254 *
255 * This class provides a high-level encapsulation of the Linux wireless extension API.
256 */
169class OWirelessNetworkInterface : public ONetworkInterface 257class OWirelessNetworkInterface : public ONetworkInterface
170{ 258{
171 friend class OMonitoringInterface; 259 friend class OMonitoringInterface;
172 friend class OCiscoMonitoringInterface; 260 friend class OCiscoMonitoringInterface;
173 friend class OWlanNGMonitoringInterface; 261 friend class OWlanNGMonitoringInterface;
174 friend class OHostAPMonitoringInterface; 262 friend class OHostAPMonitoringInterface;
175 friend class OOrinocoMonitoringInterface; 263 friend class OOrinocoMonitoringInterface;
176 264
177 friend class OPrivateIOCTL; 265 friend class OPrivateIOCTL;
178 266
179 public: 267 public:
180 enum Mode { AdHoc, Managed, Monitor }; 268 enum Mode { AdHoc, Managed, Monitor };
181 269
270 /**
271 * Constructor.
272 */
182 OWirelessNetworkInterface( QObject* parent, const char* name ); 273 OWirelessNetworkInterface( QObject* parent, const char* name );
274 /**
275 * Destructor.
276 */
183 virtual ~OWirelessNetworkInterface(); 277 virtual ~OWirelessNetworkInterface();
184 278 /**
185 virtual void setChannel( int ) const; 279 * Setting the @a channel of the interface changes the radio frequency (RF)
280 * of the corresponding wireless network device.
281 */
282 virtual void setChannel( int channel ) const;
283 /**
284 * @returns the channel index of the current radio frequency.
285 */
186 virtual int channel() const; 286 virtual int channel() const;
287 /**
288 * @returns the current radio frequency (in MHz).
289 */
187 virtual double frequency() const; 290 virtual double frequency() const;
291 /**
292 * @returns the number of radio frequency channels for the
293 * corresponding wireless network device.
294 * @note European devices usually have 14 channels, while American typically feature 11 channels.
295 */
188 virtual int channels() const; 296 virtual int channels() const;
189 //virtual double frequency(int) const; 297 //virtual double frequency(int) const;
190 298
191 virtual void setMode( Mode ) {}; 299 virtual void setMode( Mode ) {}; //FIXME: Implement and document this
192 virtual bool mode() const {}; 300 virtual bool mode() const {}; //FIXME: Implement and document this
193 301
302 /**
303 * Setting the monitor mode on a wireless network interface enables
304 * listening to IEEE 802.11 data and management frames which normally
305 * are handled by the device firmware. This can be used to detect
306 * other wireless network devices, e.g. Access Points or Ad-hoc stations.
307 * @warning Standard wireless network drives don't support the monitor mode.
308 * @warning You need a patched driver for this to work.
309 * @note Enabling the monitor mode is highly driver dependent and requires
310 * the proper @ref OMonitoringInterface to be associated with the interface.
311 * @see OMonitoringInterface
312 */
194 virtual void setMonitorMode( bool ); 313 virtual void setMonitorMode( bool );
314 /**
315 * @returns true if the device is listening in IEEE 802.11 monitor mode
316 */
195 virtual bool monitorMode() const; 317 virtual bool monitorMode() const;
196 318 /**
319 * Set the channel hopping @a interval. An @a interval of 0 disables channel hopping.
320 * @see OChannelHopper
321 */
197 virtual void setChannelHopping( int interval = 0 ); 322 virtual void setChannelHopping( int interval = 0 );
323 /**
324 * @returns the channel hopping interval or 0, if channel hopping is disabled.
325 */
198 virtual int channelHopping() const; 326 virtual int channelHopping() const;
199 327 /**
200 virtual void setNickName( const QString& ) {}; 328 * Set the station @a nickname.
329 */
330 virtual void setNickName( const QString& nickname ) {}; //FIXME: Implement this
331 /**
332 * @returns the current station nickname.
333 */
201 virtual QString nickName() const; 334 virtual QString nickName() const;
202 335 /**
203 virtual void setPrivate( const QString&, int, ... ); 336 * Invoke the private IOCTL @a command with a @number of parameters on the network interface.
204 virtual bool hasPrivate( const QString& ); 337 * @see OPrivateIOCTL
205 virtual void getPrivate( const QString& ); 338 */
206 339 virtual void setPrivate( const QString& command, int number, ... );
207 virtual bool isAssociated() const {}; 340 /**
208 virtual QString associatedAP() const; 341 * @returns true if the interface is featuring the private IOCTL @command.
342 */
343 virtual bool hasPrivate( const QString& command );
344 virtual void getPrivate( const QString& command ); //FIXME: Implement and document this
345
346 virtual bool isAssociated() const {}; //FIXME: Implement and document this
347 virtual QString associatedAP() const; //FIXME: Implement and document this
209 348
210 virtual void setSSID( const QString& ); 349 virtual void setSSID( const QString& );
211 virtual QString SSID() const; 350 virtual QString SSID() const;
212 351
213 protected: 352 protected:
214 void buildChannelList(); 353 void buildChannelList();
215 void buildPrivateList(); 354 void buildPrivateList();
216 virtual void init(); 355 virtual void init();
217 struct iwreq& iwr() const; 356 struct iwreq& iwr() const;
218 bool wioctl( int call ) const; 357 bool wioctl( int call ) const;
219 bool wioctl( int call, struct iwreq& ) const; 358 bool wioctl( int call, struct iwreq& ) const;
220 359
221 protected: 360 protected:
222 mutable struct iwreq _iwr; 361 mutable struct iwreq _iwr;
223 QMap<int,int> _channels; 362 QMap<int,int> _channels;
224 363
225 private: 364 private:
226 OChannelHopper* _hopper; 365 OChannelHopper* _hopper;
227}; 366};
228 367
229 368
230/*====================================================================================== 369/*======================================================================================
231 * OMonitoringInterface 370 * OMonitoringInterface
232 *======================================================================================*/ 371 *======================================================================================*/
233 372
234 373
235class OMonitoringInterface 374class OMonitoringInterface
236{ 375{
237 public: 376 public:
238 OMonitoringInterface(); 377 OMonitoringInterface();
239 OMonitoringInterface( ONetworkInterface* ); 378 OMonitoringInterface( ONetworkInterface* );
240 virtual ~OMonitoringInterface(); 379 virtual ~OMonitoringInterface();
241 380
242 public: 381 public:
243 virtual void setEnabled( bool ); 382 virtual void setEnabled( bool );
244 virtual bool enabled() const; 383 virtual bool enabled() const;
245 virtual void setChannel( int ); 384 virtual void setChannel( int );
246 385
247 virtual QString name() const = 0; 386 virtual QString name() const = 0;
248 387
249 protected: 388 protected:
250 OWirelessNetworkInterface* _if; 389 OWirelessNetworkInterface* _if;
251 390
252}; 391};
253 392
254 393
255/*====================================================================================== 394/*======================================================================================
256 * OCiscoMonitoring 395 * OCiscoMonitoring
257 *======================================================================================*/ 396 *======================================================================================*/
258 397
259 398
260class OCiscoMonitoringInterface : public OMonitoringInterface 399class OCiscoMonitoringInterface : public OMonitoringInterface
261{ 400{
262 public: 401 public:
263 OCiscoMonitoringInterface( ONetworkInterface* ); 402 OCiscoMonitoringInterface( ONetworkInterface* );
264 virtual ~OCiscoMonitoringInterface(); 403 virtual ~OCiscoMonitoringInterface();
265 404
266 virtual void setEnabled( bool ); 405 virtual void setEnabled( bool );
267 virtual QString name() const; 406 virtual QString name() const;
268 virtual void setChannel( int ); 407 virtual void setChannel( int );
269 408
270}; 409};
271 410
272/*====================================================================================== 411/*======================================================================================
273 * OWlanNGMonitoringInterface 412 * OWlanNGMonitoringInterface
274 *======================================================================================*/ 413 *======================================================================================*/
275 414
276class OWlanNGMonitoringInterface : public OMonitoringInterface 415class OWlanNGMonitoringInterface : public OMonitoringInterface
277{ 416{
278 public: 417 public:
279 OWlanNGMonitoringInterface( ONetworkInterface* ); 418 OWlanNGMonitoringInterface( ONetworkInterface* );
280 virtual ~OWlanNGMonitoringInterface(); 419 virtual ~OWlanNGMonitoringInterface();
281 420
282 public: 421 public:
283 virtual void setEnabled( bool ); 422 virtual void setEnabled( bool );
284 virtual QString name() const; 423 virtual QString name() const;
285 virtual void setChannel( int ); 424 virtual void setChannel( int );
286 425
287}; 426};
288 427
289/*====================================================================================== 428/*======================================================================================
290 * OHostAPMonitoringInterface 429 * OHostAPMonitoringInterface
291 *======================================================================================*/ 430 *======================================================================================*/
292 431
293class OHostAPMonitoringInterface : public OMonitoringInterface 432class OHostAPMonitoringInterface : public OMonitoringInterface
294{ 433{
295 public: 434 public:
296 OHostAPMonitoringInterface( ONetworkInterface* ); 435 OHostAPMonitoringInterface( ONetworkInterface* );
297 virtual ~OHostAPMonitoringInterface(); 436 virtual ~OHostAPMonitoringInterface();
298 437
299 public: 438 public:
300 virtual void setEnabled( bool ); 439 virtual void setEnabled( bool );
301 virtual QString name() const; 440 virtual QString name() const;
302 }; 441 };
303 442
304/*====================================================================================== 443/*======================================================================================
305 * OOrinocoMonitoringInterface 444 * OOrinocoMonitoringInterface
306 *======================================================================================*/ 445 *======================================================================================*/
307 446
308class OOrinocoMonitoringInterface : public OMonitoringInterface 447class OOrinocoMonitoringInterface : public OMonitoringInterface
309{ 448{
310 public: 449 public:
311 OOrinocoMonitoringInterface( ONetworkInterface* ); 450 OOrinocoMonitoringInterface( ONetworkInterface* );
312 virtual ~OOrinocoMonitoringInterface(); 451 virtual ~OOrinocoMonitoringInterface();
313 452
314 public: 453 public:
315 virtual void setChannel( int ); 454 virtual void setChannel( int );
316 virtual void setEnabled( bool ); 455 virtual void setEnabled( bool );
317 virtual QString name() const; 456 virtual QString name() const;
318 457
319}; 458};
320 459
321#endif // ONETWORK_H 460#endif // ONETWORK_H
322 461