-rw-r--r-- | libopie2/opienet/onetwork.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/libopie2/opienet/onetwork.h b/libopie2/opienet/onetwork.h index a953296..f5fbe1d 100644 --- a/libopie2/opienet/onetwork.h +++ b/libopie2/opienet/onetwork.h | |||
@@ -1,139 +1,146 @@ | |||
1 | /* | 1 | /* |
2 | This file is part of the Opie Project | 2 | This file is part of the Opie Project |
3 | Copyright (C) 2003-2004 by Michael 'Mickey' Lauer | 3 | Copyright (C) 2003-2004 by Michael 'Mickey' Lauer |
4 | =. <mickey@Vanille.de> | 4 | =. <mickey@Vanille.de> |
5 | .=l. | 5 | .=l. |
6 | .>+-= | 6 | .>+-= |
7 | _;:, .> :=|. This program is free software; you can | 7 | _;:, .> :=|. This program is free software; you can |
8 | .> <`_, > . <= redistribute it and/or modify it under | 8 | .> <`_, > . <= redistribute it and/or modify it under |
9 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | 9 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public |
10 | .="- .-=="i, .._ License as published by the Free Software | 10 | .="- .-=="i, .._ License as published by the Free Software |
11 | - . .-<_> .<> Foundation; either version 2 of the License, | 11 | - . .-<_> .<> Foundation; either version 2 of the License, |
12 | ._= =} : or (at your option) any later version. | 12 | ._= =} : or (at your option) any later version. |
13 | .%`+i> _;_. | 13 | .%`+i> _;_. |
14 | .i_,=:_. -<s. This program is distributed in the hope that | 14 | .i_,=:_. -<s. This program is distributed in the hope that |
15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | 15 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; |
16 | : .. .:, . . . without even the implied warranty of | 16 | : .. .:, . . . without even the implied warranty of |
17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | 17 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A |
18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | 18 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU |
19 | ..}^=.= = ; Library General Public License for more | 19 | ..}^=.= = ; Library General Public License for more |
20 | ++= -. .` .: details. | 20 | ++= -. .` .: details. |
21 | : = ...= . :.=- | 21 | : = ...= . :.=- |
22 | -. .:....=;==+<; You should have received a copy of the GNU | 22 | -. .:....=;==+<; You should have received a copy of the GNU |
23 | -_. . . )=. = Library General Public License along with | 23 | -_. . . )=. = Library General Public License along with |
24 | -- :-=` this library; see the file COPYING.LIB. | 24 | -- :-=` this library; see the file COPYING.LIB. |
25 | If not, write to the Free Software Foundation, | 25 | If not, write to the Free Software Foundation, |
26 | Inc., 59 Temple Place - Suite 330, | 26 | Inc., 59 Temple Place - Suite 330, |
27 | Boston, MA 02111-1307, USA. | 27 | Boston, MA 02111-1307, USA. |
28 | 28 | ||
29 | */ | 29 | */ |
30 | 30 | ||
31 | #ifndef ONETWORK_H | 31 | #ifndef ONETWORK_H |
32 | #define ONETWORK_H | 32 | #define ONETWORK_H |
33 | 33 | ||
34 | #if !defined( OPIE_WE_VERSION ) | 34 | #if !defined( OPIE_WE_VERSION ) |
35 | #error Need to define a wireless extension version to build against! | 35 | #warning No wireless extension specified; autodetecting... |
36 | #endif | 36 | #include <linux/version.h> |
37 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23) | ||
38 | #define OPIE_WE_VERSION 15 | ||
39 | #else | ||
40 | #define OPIE_WE_VERSION 16 | ||
41 | #endif // LINUX_VERSION_CODE < KERNEL_VERSION(2.4.23) | ||
42 | #endif // !defined( OPIE_WE_VERSION ) | ||
37 | 43 | ||
38 | #if OPIE_WE_VERSION == 15 | 44 | #if OPIE_WE_VERSION == 15 |
39 | #include "wireless.15.h" | 45 | #include "wireless.15.h" |
46 | #warning Using WE V15 | ||
40 | #endif | 47 | #endif |
41 | |||
42 | #if OPIE_WE_VERSION == 16 | 48 | #if OPIE_WE_VERSION == 16 |
43 | #include "wireless.16.h" | 49 | #include "wireless.16.h" |
50 | #warning Using WE V16 | ||
44 | #endif | 51 | #endif |
45 | 52 | ||
46 | /* OPIE */ | 53 | /* OPIE */ |
47 | 54 | ||
48 | #include <opie2/onetutils.h> | 55 | #include <opie2/onetutils.h> |
49 | #include <opie2/ostation.h> | 56 | #include <opie2/ostation.h> |
50 | 57 | ||
51 | /* QT */ | 58 | /* QT */ |
52 | 59 | ||
53 | #include <qvaluelist.h> | 60 | #include <qvaluelist.h> |
54 | #include <qdict.h> | 61 | #include <qdict.h> |
55 | #include <qmap.h> | 62 | #include <qmap.h> |
56 | #include <qobject.h> | 63 | #include <qobject.h> |
57 | #include <qhostaddress.h> | 64 | #include <qhostaddress.h> |
58 | 65 | ||
59 | namespace Opie { | 66 | namespace Opie { |
60 | namespace Net { | 67 | namespace Net { |
61 | 68 | ||
62 | class ONetworkInterface; | 69 | class ONetworkInterface; |
63 | class OWirelessNetworkInterface; | 70 | class OWirelessNetworkInterface; |
64 | class OChannelHopper; | 71 | class OChannelHopper; |
65 | class OMonitoringInterface; | 72 | class OMonitoringInterface; |
66 | 73 | ||
67 | /*====================================================================================== | 74 | /*====================================================================================== |
68 | * ONetwork | 75 | * ONetwork |
69 | *======================================================================================*/ | 76 | *======================================================================================*/ |
70 | 77 | ||
71 | /** | 78 | /** |
72 | * @brief A container class for all network interfaces | 79 | * @brief A container class for all network interfaces |
73 | * | 80 | * |
74 | * This class provides access to all available network interfaces of your computer. | 81 | * This class provides access to all available network interfaces of your computer. |
75 | * | 82 | * |
76 | * @author Michael 'Mickey' Lauer <mickey@vanille.de> | 83 | * @author Michael 'Mickey' Lauer <mickey@vanille.de> |
77 | */ | 84 | */ |
78 | class ONetwork : public QObject | 85 | class ONetwork : public QObject |
79 | { | 86 | { |
80 | Q_OBJECT | 87 | Q_OBJECT |
81 | 88 | ||
82 | public: | 89 | public: |
83 | typedef QDict<ONetworkInterface> InterfaceMap; | 90 | typedef QDict<ONetworkInterface> InterfaceMap; |
84 | typedef QDictIterator<ONetworkInterface> InterfaceIterator; | 91 | typedef QDictIterator<ONetworkInterface> InterfaceIterator; |
85 | 92 | ||
86 | public: | 93 | public: |
87 | /** | 94 | /** |
88 | * @returns the number of available interfaces | 95 | * @returns the number of available interfaces |
89 | */ | 96 | */ |
90 | int count() const; | 97 | int count() const; |
91 | /** | 98 | /** |
92 | * @returns a pointer to the (one and only) @ref ONetwork instance. | 99 | * @returns a pointer to the (one and only) @ref ONetwork instance. |
93 | */ | 100 | */ |
94 | static ONetwork* instance(); | 101 | static ONetwork* instance(); |
95 | /** | 102 | /** |
96 | * @returns an iterator usable for iterating through all network interfaces. | 103 | * @returns an iterator usable for iterating through all network interfaces. |
97 | */ | 104 | */ |
98 | InterfaceIterator iterator() const; | 105 | InterfaceIterator iterator() const; |
99 | /** | 106 | /** |
100 | * @returns true, if the @a interface is present. | 107 | * @returns true, if the @a interface is present. |
101 | */ | 108 | */ |
102 | bool isPresent( const char* interface ) const; | 109 | bool isPresent( const char* interface ) const; |
103 | /** | 110 | /** |
104 | * @returns true, if the @a interface supports the wireless extension protocol. | 111 | * @returns true, if the @a interface supports the wireless extension protocol. |
105 | */ | 112 | */ |
106 | bool isWirelessInterface( const char* interface ) const; | 113 | bool isWirelessInterface( const char* interface ) const; |
107 | /** | 114 | /** |
108 | * @returns a pointer to the @ref ONetworkInterface object for the specified @a interface or 0, if not found. | 115 | * @returns a pointer to the @ref ONetworkInterface object for the specified @a interface or 0, if not found. |
109 | * @see ONetworkInterface | 116 | * @see ONetworkInterface |
110 | */ | 117 | */ |
111 | ONetworkInterface* interface( const QString& interface ) const; | 118 | ONetworkInterface* interface( const QString& interface ) const; |
112 | /** | 119 | /** |
113 | * @internal Rebuild the internal interface database | 120 | * @internal Rebuild the internal interface database |
114 | * @note Sometimes it might be useful to call this from client code, | 121 | * @note Sometimes it might be useful to call this from client code, |
115 | * e.g. after issuing a cardctl insert | 122 | * e.g. after issuing a cardctl insert |
116 | */ | 123 | */ |
117 | void synchronize(); | 124 | void synchronize(); |
118 | /** | 125 | /** |
119 | * @returns the wireless extension version used at compile time. | 126 | * @returns the wireless extension version used at compile time. |
120 | **/ | 127 | **/ |
121 | static short wirelessExtensionVersion(); | 128 | static short wirelessExtensionVersion(); |
122 | 129 | ||
123 | protected: | 130 | protected: |
124 | ONetwork(); | 131 | ONetwork(); |
125 | 132 | ||
126 | private: | 133 | private: |
127 | static ONetwork* _instance; | 134 | static ONetwork* _instance; |
128 | InterfaceMap _interfaces; | 135 | InterfaceMap _interfaces; |
129 | class Private; | 136 | class Private; |
130 | Private *d; | 137 | Private *d; |
131 | }; | 138 | }; |
132 | 139 | ||
133 | 140 | ||
134 | /*====================================================================================== | 141 | /*====================================================================================== |
135 | * ONetworkInterface | 142 | * ONetworkInterface |
136 | *======================================================================================*/ | 143 | *======================================================================================*/ |
137 | 144 | ||
138 | /** | 145 | /** |
139 | * @brief A network interface wrapper. | 146 | * @brief A network interface wrapper. |
@@ -462,129 +469,129 @@ class OWirelessNetworkInterface : public ONetworkInterface | |||
462 | mutable struct iwreq _iwr; | 469 | mutable struct iwreq _iwr; |
463 | QMap<int,int> _channels; | 470 | QMap<int,int> _channels; |
464 | struct iw_range _range; | 471 | struct iw_range _range; |
465 | 472 | ||
466 | private: | 473 | private: |
467 | OChannelHopper* _hopper; | 474 | OChannelHopper* _hopper; |
468 | class Private; | 475 | class Private; |
469 | Private *d; | 476 | Private *d; |
470 | }; | 477 | }; |
471 | 478 | ||
472 | 479 | ||
473 | /*====================================================================================== | 480 | /*====================================================================================== |
474 | * OMonitoringInterface | 481 | * OMonitoringInterface |
475 | *======================================================================================*/ | 482 | *======================================================================================*/ |
476 | 483 | ||
477 | 484 | ||
478 | class OMonitoringInterface | 485 | class OMonitoringInterface |
479 | { | 486 | { |
480 | public: | 487 | public: |
481 | OMonitoringInterface(); | 488 | OMonitoringInterface(); |
482 | OMonitoringInterface( ONetworkInterface*, bool _prismHeader ); | 489 | OMonitoringInterface( ONetworkInterface*, bool _prismHeader ); |
483 | virtual ~OMonitoringInterface(); | 490 | virtual ~OMonitoringInterface(); |
484 | 491 | ||
485 | public: | 492 | public: |
486 | virtual void setEnabled( bool ); | 493 | virtual void setEnabled( bool ); |
487 | virtual void setChannel( int ); | 494 | virtual void setChannel( int ); |
488 | 495 | ||
489 | virtual QString name() const = 0; | 496 | virtual QString name() const = 0; |
490 | 497 | ||
491 | protected: | 498 | protected: |
492 | OWirelessNetworkInterface* _if; | 499 | OWirelessNetworkInterface* _if; |
493 | bool _prismHeader; | 500 | bool _prismHeader; |
494 | private: | 501 | private: |
495 | class Private; | 502 | class Private; |
496 | Private *d; | 503 | Private *d; |
497 | 504 | ||
498 | }; | 505 | }; |
499 | 506 | ||
500 | 507 | ||
501 | /*====================================================================================== | 508 | /*====================================================================================== |
502 | * OCiscoMonitoring | 509 | * OCiscoMonitoring |
503 | *======================================================================================*/ | 510 | *======================================================================================*/ |
504 | 511 | ||
505 | 512 | ||
506 | class OCiscoMonitoringInterface : public OMonitoringInterface | 513 | class OCiscoMonitoringInterface : public OMonitoringInterface |
507 | { | 514 | { |
508 | public: | 515 | public: |
509 | OCiscoMonitoringInterface( ONetworkInterface*, bool _prismHeader ); | 516 | OCiscoMonitoringInterface( ONetworkInterface*, bool _prismHeader ); |
510 | virtual ~OCiscoMonitoringInterface(); | 517 | virtual ~OCiscoMonitoringInterface(); |
511 | 518 | ||
512 | virtual void setEnabled( bool ); | 519 | virtual void setEnabled( bool ); |
513 | virtual QString name() const; | 520 | virtual QString name() const; |
514 | virtual void setChannel( int ); | 521 | virtual void setChannel( int ); |
515 | private: | 522 | private: |
516 | class Private; | 523 | class Private; |
517 | Private *d; | 524 | Private *d; |
518 | 525 | ||
519 | }; | 526 | }; |
520 | 527 | ||
521 | 528 | ||
522 | /*====================================================================================== | 529 | /*====================================================================================== |
523 | * OWlanNGMonitoringInterface | 530 | * OWlanNGMonitoringInterface |
524 | *======================================================================================*/ | 531 | *======================================================================================*/ |
525 | 532 | ||
526 | 533 | ||
527 | class OWlanNGMonitoringInterface : public OMonitoringInterface | 534 | class OWlanNGMonitoringInterface : public OMonitoringInterface |
528 | { | 535 | { |
529 | public: | 536 | public: |
530 | OWlanNGMonitoringInterface( ONetworkInterface*, bool _prismHeader ); | 537 | OWlanNGMonitoringInterface( ONetworkInterface*, bool _prismHeader ); |
531 | virtual ~OWlanNGMonitoringInterface(); | 538 | virtual ~OWlanNGMonitoringInterface(); |
532 | 539 | ||
533 | public: | 540 | public: |
534 | virtual void setEnabled( bool ); | 541 | virtual void setEnabled( bool ); |
535 | virtual QString name() const; | 542 | virtual QString name() const; |
536 | virtual void setChannel( int ); | 543 | virtual void setChannel( int ); |
537 | private: | 544 | private: |
538 | class Private; | 545 | class Private; |
539 | Private *d; | 546 | Private *d; |
540 | 547 | ||
541 | }; | 548 | }; |
542 | 549 | ||
543 | 550 | ||
544 | /*====================================================================================== | 551 | /*====================================================================================== |
545 | * OHostAPMonitoringInterface | 552 | * OHostAPMonitoringInterface |
546 | *======================================================================================*/ | 553 | *======================================================================================*/ |
547 | 554 | ||
548 | 555 | ||
549 | class OHostAPMonitoringInterface : public OMonitoringInterface | 556 | class OHostAPMonitoringInterface : public OMonitoringInterface |
550 | { | 557 | { |
551 | public: | 558 | public: |
552 | OHostAPMonitoringInterface( ONetworkInterface*, bool _prismHeader ); | 559 | OHostAPMonitoringInterface( ONetworkInterface*, bool _prismHeader ); |
553 | virtual ~OHostAPMonitoringInterface(); | 560 | virtual ~OHostAPMonitoringInterface(); |
554 | 561 | ||
555 | public: | 562 | public: |
556 | virtual void setEnabled( bool ); | 563 | virtual void setEnabled( bool ); |
557 | virtual QString name() const; | 564 | virtual QString name() const; |
558 | 565 | ||
559 | private: | 566 | private: |
560 | class Private; | 567 | class Private; |
561 | Private *d; | 568 | Private *d; |
562 | }; | 569 | }; |
563 | 570 | ||
564 | 571 | ||
565 | /*====================================================================================== | 572 | /*====================================================================================== |
566 | * OOrinocoMonitoringInterface | 573 | * OOrinocoMonitoringInterface |
567 | *======================================================================================*/ | 574 | *======================================================================================*/ |
568 | 575 | ||
569 | 576 | ||
570 | class OOrinocoMonitoringInterface : public OMonitoringInterface | 577 | class OOrinocoMonitoringInterface : public OMonitoringInterface |
571 | { | 578 | { |
572 | public: | 579 | public: |
573 | OOrinocoMonitoringInterface( ONetworkInterface*, bool _prismHeader ); | 580 | OOrinocoMonitoringInterface( ONetworkInterface*, bool _prismHeader ); |
574 | virtual ~OOrinocoMonitoringInterface(); | 581 | virtual ~OOrinocoMonitoringInterface(); |
575 | 582 | ||
576 | public: | 583 | public: |
577 | virtual void setChannel( int ); | 584 | virtual void setChannel( int ); |
578 | virtual void setEnabled( bool ); | 585 | virtual void setEnabled( bool ); |
579 | virtual QString name() const; | 586 | virtual QString name() const; |
580 | 587 | ||
581 | private: | 588 | private: |
582 | class Private; | 589 | class Private; |
583 | Private *d; | 590 | Private *d; |
584 | }; | 591 | }; |
585 | 592 | ||
586 | } | 593 | } |
587 | } | 594 | } |
588 | 595 | ||
589 | #endif // ONETWORK_H | 596 | #endif // ONETWORK_H |
590 | 597 | ||