author | mickeyl <mickeyl> | 2003-10-21 18:09:34 (UTC) |
---|---|---|
committer | mickeyl <mickeyl> | 2003-10-21 18:09:34 (UTC) |
commit | 3e9d8077999bd928b7103bd19f7b41f305c573d9 (patch) (unidiff) | |
tree | 507ee7f3a1539d02af159fb0fed4153e08c5ece0 | |
parent | 76ca3158518a851085b5a5ebe3724d0c0c3be857 (diff) | |
download | opie-3e9d8077999bd928b7103bd19f7b41f305c573d9.zip opie-3e9d8077999bd928b7103bd19f7b41f305c573d9.tar.gz opie-3e9d8077999bd928b7103bd19f7b41f305c573d9.tar.bz2 |
- more work on scanning
- start OStation class representing a network node
-rw-r--r-- | libopie2/opienet/onetwork.cpp | 45 | ||||
-rw-r--r-- | libopie2/opienet/opienet.pro | 6 | ||||
-rw-r--r-- | libopie2/opienet/ostation.cpp | 49 | ||||
-rw-r--r-- | libopie2/opienet/ostation.h | 67 |
4 files changed, 164 insertions, 3 deletions
diff --git a/libopie2/opienet/onetwork.cpp b/libopie2/opienet/onetwork.cpp index 918ba07..a85a510 100644 --- a/libopie2/opienet/onetwork.cpp +++ b/libopie2/opienet/onetwork.cpp | |||
@@ -1,100 +1,101 @@ | |||
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 | /* OPIE */ | 34 | /* OPIE */ |
35 | 35 | ||
36 | #include <opie2/onetwork.h> | 36 | #include <opie2/onetwork.h> |
37 | #include <opie2/ostation.h> | ||
37 | 38 | ||
38 | /* QT */ | 39 | /* QT */ |
39 | 40 | ||
40 | #include <qfile.h> | 41 | #include <qfile.h> |
41 | #include <qtextstream.h> | 42 | #include <qtextstream.h> |
42 | 43 | ||
43 | /* UNIX */ | 44 | /* UNIX */ |
44 | 45 | ||
45 | #include <assert.h> | 46 | #include <assert.h> |
46 | #include <arpa/inet.h> | 47 | #include <arpa/inet.h> |
47 | #include <cerrno> | 48 | #include <cerrno> |
48 | #include <cstring> | 49 | #include <cstring> |
49 | #include <cstdlib> | 50 | #include <cstdlib> |
50 | #include <math.h> | 51 | #include <math.h> |
51 | #include <sys/ioctl.h> | 52 | #include <sys/ioctl.h> |
52 | #include <sys/socket.h> | 53 | #include <sys/socket.h> |
53 | #include <sys/types.h> | 54 | #include <sys/types.h> |
54 | #include <unistd.h> | 55 | #include <unistd.h> |
55 | #include <linux/sockios.h> | 56 | #include <linux/sockios.h> |
56 | #include <net/if_arp.h> | 57 | #include <net/if_arp.h> |
57 | #include <stdarg.h> | 58 | #include <stdarg.h> |
58 | 59 | ||
59 | using namespace std; | 60 | using namespace std; |
60 | 61 | ||
61 | #ifndef NODEBUG | 62 | #ifndef NODEBUG |
62 | #include <opie2/oioctlmap.h> | 63 | #include <opie2/oioctlmap.h> |
63 | IntStringMap* _ioctlmap = constructIoctlMap(); | 64 | IntStringMap* _ioctlmap = constructIoctlMap(); |
64 | #endif | 65 | #endif |
65 | 66 | ||
66 | /*====================================================================================== | 67 | /*====================================================================================== |
67 | * ONetwork | 68 | * ONetwork |
68 | *======================================================================================*/ | 69 | *======================================================================================*/ |
69 | 70 | ||
70 | ONetwork* ONetwork::_instance = 0; | 71 | ONetwork* ONetwork::_instance = 0; |
71 | 72 | ||
72 | ONetwork::ONetwork() | 73 | ONetwork::ONetwork() |
73 | { | 74 | { |
74 | qDebug( "ONetwork::ONetwork()" ); | 75 | qDebug( "ONetwork::ONetwork()" ); |
75 | qDebug( "ONetwork: This code has been compiled against Wireless Extensions V%d", WIRELESS_EXT ); | 76 | qDebug( "ONetwork: This code has been compiled against Wireless Extensions V%d", WIRELESS_EXT ); |
76 | synchronize(); | 77 | synchronize(); |
77 | } | 78 | } |
78 | 79 | ||
79 | void ONetwork::synchronize() | 80 | void ONetwork::synchronize() |
80 | { | 81 | { |
81 | // gather available interfaces by inspecting /proc/net/dev | 82 | // gather available interfaces by inspecting /proc/net/dev |
82 | //FIXME: we could use SIOCGIFCONF here, but we aren't interested in virtual (e.g. eth0:0) devices | 83 | //FIXME: we could use SIOCGIFCONF here, but we aren't interested in virtual (e.g. eth0:0) devices |
83 | //FIXME: Use SIOCGIFCONF anway, because we can disable listing of aliased devices | 84 | //FIXME: Use SIOCGIFCONF anway, because we can disable listing of aliased devices |
84 | //FIXME: Best is use SIOCGIFCONF and if this doesn't work (result=-1), then fallback to parsing /proc/net/dev | 85 | //FIXME: Best is use SIOCGIFCONF and if this doesn't work (result=-1), then fallback to parsing /proc/net/dev |
85 | 86 | ||
86 | _interfaces.clear(); | 87 | _interfaces.clear(); |
87 | QString str; | 88 | QString str; |
88 | QFile f( "/proc/net/dev" ); | 89 | QFile f( "/proc/net/dev" ); |
89 | bool hasFile = f.open( IO_ReadOnly ); | 90 | bool hasFile = f.open( IO_ReadOnly ); |
90 | if ( !hasFile ) | 91 | if ( !hasFile ) |
91 | { | 92 | { |
92 | qDebug( "ONetwork: /proc/net/dev not existing. No network devices available" ); | 93 | qDebug( "ONetwork: /proc/net/dev not existing. No network devices available" ); |
93 | return; | 94 | return; |
94 | } | 95 | } |
95 | QTextStream s( &f ); | 96 | QTextStream s( &f ); |
96 | s.readLine(); | 97 | s.readLine(); |
97 | s.readLine(); | 98 | s.readLine(); |
98 | while ( !s.atEnd() ) | 99 | while ( !s.atEnd() ) |
99 | { | 100 | { |
100 | s >> str; | 101 | s >> str; |
@@ -820,133 +821,175 @@ QString OWirelessNetworkInterface::SSID() const | |||
820 | } | 821 | } |
821 | } | 822 | } |
822 | 823 | ||
823 | 824 | ||
824 | void OWirelessNetworkInterface::setSSID( const QString& ssid ) | 825 | void OWirelessNetworkInterface::setSSID( const QString& ssid ) |
825 | { | 826 | { |
826 | _iwr.u.essid.pointer = const_cast<char*>( (const char*) ssid ); | 827 | _iwr.u.essid.pointer = const_cast<char*>( (const char*) ssid ); |
827 | _iwr.u.essid.length = ssid.length(); | 828 | _iwr.u.essid.length = ssid.length(); |
828 | wioctl( SIOCSIWESSID ); | 829 | wioctl( SIOCSIWESSID ); |
829 | } | 830 | } |
830 | 831 | ||
831 | 832 | ||
832 | int OWirelessNetworkInterface::scanNetwork() | 833 | int OWirelessNetworkInterface::scanNetwork() |
833 | { | 834 | { |
834 | _iwr.u.param.flags = IW_SCAN_DEFAULT; | 835 | _iwr.u.param.flags = IW_SCAN_DEFAULT; |
835 | _iwr.u.param.value = 0; | 836 | _iwr.u.param.value = 0; |
836 | if ( !wioctl( SIOCSIWSCAN ) ) | 837 | if ( !wioctl( SIOCSIWSCAN ) ) |
837 | { | 838 | { |
838 | return -1; | 839 | return -1; |
839 | } | 840 | } |
840 | 841 | ||
841 | int timeout = 1000000; | 842 | int timeout = 1000000; |
842 | 843 | ||
843 | qDebug( "ONetworkInterface::scanNetwork() - scan started." ); | 844 | qDebug( "ONetworkInterface::scanNetwork() - scan started." ); |
844 | 845 | ||
845 | bool results = false; | 846 | bool results = false; |
846 | struct timeval tv; | 847 | struct timeval tv; |
847 | tv.tv_sec = 0; | 848 | tv.tv_sec = 0; |
848 | tv.tv_usec = 250000; // initial timeout ~ 250ms | 849 | tv.tv_usec = 250000; // initial timeout ~ 250ms |
849 | char buffer[IW_SCAN_MAX_DATA]; | 850 | char buffer[IW_SCAN_MAX_DATA]; |
850 | 851 | ||
851 | while ( !results && timeout > 0 ) | 852 | while ( !results && timeout > 0 ) |
852 | { | 853 | { |
853 | timeout -= tv.tv_usec; | 854 | timeout -= tv.tv_usec; |
854 | select( 0, 0, 0, 0, &tv ); | 855 | select( 0, 0, 0, 0, &tv ); |
855 | 856 | ||
856 | _iwr.u.data.pointer = &buffer[0]; | 857 | _iwr.u.data.pointer = &buffer[0]; |
857 | _iwr.u.data.flags = 0; | 858 | _iwr.u.data.flags = 0; |
858 | _iwr.u.data.length = sizeof buffer; | 859 | _iwr.u.data.length = sizeof buffer; |
859 | if ( wioctl( SIOCGIWSCAN ) ) | 860 | if ( wioctl( SIOCGIWSCAN ) ) |
860 | { | 861 | { |
861 | results = true; | 862 | results = true; |
862 | continue; | 863 | continue; |
863 | } | 864 | } |
864 | else if ( errno == EAGAIN) | 865 | else if ( errno == EAGAIN) |
865 | { | 866 | { |
866 | qDebug( "ONetworkInterface::scanNetwork() - scan in progress..." ); | 867 | qDebug( "ONetworkInterface::scanNetwork() - scan in progress..." ); |
867 | #if 0 | 868 | #if 0 |
868 | if ( qApp ) | 869 | if ( qApp ) |
869 | { | 870 | { |
870 | qApp->processEvents( 100 ); | 871 | qApp->processEvents( 100 ); |
871 | continue; | 872 | continue; |
872 | } | 873 | } |
873 | #endif | 874 | #endif |
874 | tv.tv_sec = 0; | 875 | tv.tv_sec = 0; |
875 | tv.tv_usec = 100000; | 876 | tv.tv_usec = 100000; |
876 | continue; | 877 | continue; |
877 | } | 878 | } |
878 | } | 879 | } |
879 | 880 | ||
880 | qDebug( "ONetworkInterface::scanNetwork() - scan finished." ); | 881 | qDebug( "ONetworkInterface::scanNetwork() - scan finished." ); |
881 | 882 | ||
882 | if ( results ) | 883 | if ( results ) |
883 | { | 884 | { |
885 | qDebug( " - result length = %d", _iwr.u.data.length ); | ||
886 | if ( !_iwr.u.data.length ) | ||
887 | { | ||
888 | qDebug( " - no results (empty neighbourhood)" ); | ||
889 | return 0; | ||
890 | } | ||
891 | |||
884 | qDebug( " - results are in!" ); | 892 | qDebug( " - results are in!" ); |
893 | dumpBytes( (const unsigned char*) &buffer[0], _iwr.u.data.length ); | ||
894 | |||
895 | int stations = 0; | ||
896 | |||
897 | // parse results | ||
898 | |||
899 | int offset = 0; | ||
900 | struct iw_event* we = (struct iw_event*) &buffer[0]; | ||
901 | |||
902 | while ( offset < _iwr.u.data.length ) | ||
903 | { | ||
904 | //const char* cmd = *(*_ioctlmap)[we->cmd]; | ||
905 | //if ( !cmd ) cmd = "<unknown>"; | ||
906 | qDebug( "reading next event... cmd=%d, len=%d", we->cmd, we->len ); | ||
907 | switch (we->cmd) | ||
908 | { | ||
909 | case SIOCGIWAP: qDebug( "SIOCGIWAP" ); stations++; break; | ||
910 | case SIOCGIWMODE: qDebug( "SIOCGIWMODE" ); break; | ||
911 | case SIOCGIWFREQ: qDebug( "SIOCGIWFREQ" ); break; | ||
912 | case SIOCGIWESSID: qDebug( "SIOCGIWESSID" ); break; | ||
913 | case SIOCGIWSENS: qDebug( "SIOCGIWSENS" ); break; | ||
914 | case SIOCGIWENCODE: qDebug( "SIOCGIWENCODE" ); break; | ||
915 | case IWEVTXDROP: qDebug( "IWEVTXDROP" ); break; /* Packet dropped to excessive retry */ | ||
916 | case IWEVQUAL: qDebug( "IWEVQUAL" ); break; /* Quality part of statistics (scan) */ | ||
917 | case IWEVCUSTOM: qDebug( "IWEVCUSTOM" ); break; /* Driver specific ascii string */ | ||
918 | case IWEVREGISTERED: qDebug( "IWEVREGISTERED" ); break; /* Discovered a new node (AP mode) */ | ||
919 | case IWEVEXPIRED: qDebug( "IWEVEXPIRED" ); break; /* Expired a node (AP mode) */ | ||
920 | default: qDebug( "unhandled event" ); | ||
921 | } | ||
922 | |||
923 | offset += we->len; | ||
924 | we = (struct iw_event*) &buffer[offset]; | ||
925 | } | ||
926 | |||
885 | } | 927 | } |
886 | else | 928 | else |
887 | { | 929 | { |
888 | qDebug( " - no results :(" ); | 930 | qDebug( " - no results (timeout) :(" ); |
931 | return 0; | ||
889 | } | 932 | } |
890 | } | 933 | } |
891 | 934 | ||
892 | 935 | ||
893 | bool OWirelessNetworkInterface::wioctl( int call, struct iwreq& iwreq ) const | 936 | bool OWirelessNetworkInterface::wioctl( int call, struct iwreq& iwreq ) const |
894 | { | 937 | { |
895 | #ifndef NODEBUG | 938 | #ifndef NODEBUG |
896 | int result = ::ioctl( _sfd, call, &iwreq ); | 939 | int result = ::ioctl( _sfd, call, &iwreq ); |
897 | if ( result == -1 ) | 940 | if ( result == -1 ) |
898 | qDebug( "ONetworkInterface::wioctl (%s) call %s (0x%04X) - Status: Failed: %d (%s)", name(), (const char*) *(*_ioctlmap)[call], call, result, strerror( errno ) ); | 941 | qDebug( "ONetworkInterface::wioctl (%s) call %s (0x%04X) - Status: Failed: %d (%s)", name(), (const char*) *(*_ioctlmap)[call], call, result, strerror( errno ) ); |
899 | else | 942 | else |
900 | qDebug( "ONetworkInterface::wioctl (%s) call %s (0x%04X) - Status: Ok.", name(), (const char*) *(*_ioctlmap)[call], call ); | 943 | qDebug( "ONetworkInterface::wioctl (%s) call %s (0x%04X) - Status: Ok.", name(), (const char*) *(*_ioctlmap)[call], call ); |
901 | return ( result != -1 ); | 944 | return ( result != -1 ); |
902 | #else | 945 | #else |
903 | return ::ioctl( _sfd, call, &iwreq ) != -1; | 946 | return ::ioctl( _sfd, call, &iwreq ) != -1; |
904 | #endif | 947 | #endif |
905 | } | 948 | } |
906 | 949 | ||
907 | 950 | ||
908 | bool OWirelessNetworkInterface::wioctl( int call ) const | 951 | bool OWirelessNetworkInterface::wioctl( int call ) const |
909 | { | 952 | { |
910 | strcpy( _iwr.ifr_name, name() ); | 953 | strcpy( _iwr.ifr_name, name() ); |
911 | return wioctl( call, _iwr ); | 954 | return wioctl( call, _iwr ); |
912 | } | 955 | } |
913 | 956 | ||
914 | 957 | ||
915 | /*====================================================================================== | 958 | /*====================================================================================== |
916 | * OMonitoringInterface | 959 | * OMonitoringInterface |
917 | *======================================================================================*/ | 960 | *======================================================================================*/ |
918 | 961 | ||
919 | OMonitoringInterface::OMonitoringInterface( ONetworkInterface* iface, bool prismHeader ) | 962 | OMonitoringInterface::OMonitoringInterface( ONetworkInterface* iface, bool prismHeader ) |
920 | :_if( static_cast<OWirelessNetworkInterface*>( iface ) ), _prismHeader( prismHeader ) | 963 | :_if( static_cast<OWirelessNetworkInterface*>( iface ) ), _prismHeader( prismHeader ) |
921 | { | 964 | { |
922 | } | 965 | } |
923 | 966 | ||
924 | 967 | ||
925 | OMonitoringInterface::~OMonitoringInterface() | 968 | OMonitoringInterface::~OMonitoringInterface() |
926 | { | 969 | { |
927 | } | 970 | } |
928 | 971 | ||
929 | 972 | ||
930 | void OMonitoringInterface::setChannel( int c ) | 973 | void OMonitoringInterface::setChannel( int c ) |
931 | { | 974 | { |
932 | // use standard WE channel switching protocol | 975 | // use standard WE channel switching protocol |
933 | memset( &_if->_iwr, 0, sizeof( struct iwreq ) ); | 976 | memset( &_if->_iwr, 0, sizeof( struct iwreq ) ); |
934 | _if->_iwr.u.freq.m = c; | 977 | _if->_iwr.u.freq.m = c; |
935 | _if->_iwr.u.freq.e = 0; | 978 | _if->_iwr.u.freq.e = 0; |
936 | _if->wioctl( SIOCSIWFREQ ); | 979 | _if->wioctl( SIOCSIWFREQ ); |
937 | } | 980 | } |
938 | 981 | ||
939 | 982 | ||
940 | bool OMonitoringInterface::enabled() const | 983 | bool OMonitoringInterface::enabled() const |
941 | { | 984 | { |
942 | return _if->monitorMode(); | 985 | return _if->monitorMode(); |
943 | } | 986 | } |
944 | 987 | ||
945 | 988 | ||
946 | void OMonitoringInterface::setEnabled( bool b ) | 989 | void OMonitoringInterface::setEnabled( bool b ) |
947 | { | 990 | { |
948 | } | 991 | } |
949 | 992 | ||
950 | 993 | ||
951 | /*====================================================================================== | 994 | /*====================================================================================== |
952 | * OCiscoMonitoringInterface | 995 | * OCiscoMonitoringInterface |
diff --git a/libopie2/opienet/opienet.pro b/libopie2/opienet/opienet.pro index 304d968..d966462 100644 --- a/libopie2/opienet/opienet.pro +++ b/libopie2/opienet/opienet.pro | |||
@@ -1,32 +1,34 @@ | |||
1 | TEMPLATE = lib | 1 | TEMPLATE = lib |
2 | CONFIG += qt warn_on debug | 2 | CONFIG += qt warn_on debug |
3 | DESTDIR = $(OPIEDIR)/lib | 3 | DESTDIR = $(OPIEDIR)/lib |
4 | HEADERS = 802_11_user.h \ | 4 | HEADERS = 802_11_user.h \ |
5 | dhcp.h \ | 5 | dhcp.h \ |
6 | udp_ports.h \ | 6 | udp_ports.h \ |
7 | wireless.h \ | 7 | wireless.h \ |
8 | oioctlmap.h \ | 8 | oioctlmap.h \ |
9 | omanufacturerdb.h \ | 9 | omanufacturerdb.h \ |
10 | onetutils.h \ | 10 | onetutils.h \ |
11 | onetwork.h \ | 11 | onetwork.h \ |
12 | opcap.h | 12 | opcap.h \ |
13 | ostation.h | ||
13 | SOURCES = oioctlmap.cpp \ | 14 | SOURCES = oioctlmap.cpp \ |
14 | omanufacturerdb.cpp \ | 15 | omanufacturerdb.cpp \ |
15 | onetutils.cpp \ | 16 | onetutils.cpp \ |
16 | onetwork.cpp \ | 17 | onetwork.cpp \ |
17 | opcap.cpp | 18 | opcap.cpp \ |
19 | ostation.cpp | ||
18 | INTERFACES = | 20 | INTERFACES = |
19 | TARGET = opienet2 | 21 | TARGET = opienet2 |
20 | VERSION = 1.8.1 | 22 | VERSION = 1.8.1 |
21 | INCLUDEPATH += $(OPIEDIR)/include | 23 | INCLUDEPATH += $(OPIEDIR)/include |
22 | DEPENDPATH += $(OPIEDIR)/include | 24 | DEPENDPATH += $(OPIEDIR)/include |
23 | LIBS += -lpcap | 25 | LIBS += -lpcap |
24 | 26 | ||
25 | 27 | ||
26 | !contains( platform, x11 ) { | 28 | !contains( platform, x11 ) { |
27 | include ( $(OPIEDIR)/include.pro ) | 29 | include ( $(OPIEDIR)/include.pro ) |
28 | } | 30 | } |
29 | 31 | ||
30 | contains( platform, x11 ) { | 32 | contains( platform, x11 ) { |
31 | LIBS += -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib | 33 | LIBS += -L$(OPIEDIR)/lib -Wl,-rpath,$(OPIEDIR)/lib |
32 | } | 34 | } |
diff --git a/libopie2/opienet/ostation.cpp b/libopie2/opienet/ostation.cpp new file mode 100644 index 0000000..3817b31 --- a/dev/null +++ b/libopie2/opienet/ostation.cpp | |||
@@ -0,0 +1,49 @@ | |||
1 | /* | ||
2 | This file is part of the Opie Project | ||
3 | |||
4 | (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> | ||
5 | =. | ||
6 | .=l. | ||
7 | .>+-= | ||
8 | _;:, .> :=|. This program is free software; you can | ||
9 | .> <`_, > . <= redistribute it and/or modify it under | ||
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | ||
11 | .="- .-=="i, .._ License as published by the Free Software | ||
12 | - . .-<_> .<> Foundation; either version 2 of the License, | ||
13 | ._= =} : or (at your option) any later version. | ||
14 | .%`+i> _;_. | ||
15 | .i_,=:_. -<s. This program is distributed in the hope that | ||
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | ||
17 | : .. .:, . . . without even the implied warranty of | ||
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | ||
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | ||
20 | ..}^=.= = ; Library General Public License for more | ||
21 | ++= -. .` .: details. | ||
22 | : = ...= . :.=- | ||
23 | -. .:....=;==+<; You should have received a copy of the GNU | ||
24 | -_. . . )=. = Library General Public License along with | ||
25 | -- :-=` this library; see the file COPYING.LIB. | ||
26 | If not, write to the Free Software Foundation, | ||
27 | Inc., 59 Temple Place - Suite 330, | ||
28 | Boston, MA 02111-1307, USA. | ||
29 | |||
30 | */ | ||
31 | |||
32 | #include <opie2/ostation.h> | ||
33 | |||
34 | /*====================================================================================== | ||
35 | * OStation | ||
36 | *======================================================================================*/ | ||
37 | |||
38 | OStation::OStation() | ||
39 | { | ||
40 | qDebug( "OStation::OStation()" ); | ||
41 | } | ||
42 | |||
43 | |||
44 | OStation::~OStation() | ||
45 | { | ||
46 | qDebug( "OStation::~OStation()" ); | ||
47 | } | ||
48 | |||
49 | |||
diff --git a/libopie2/opienet/ostation.h b/libopie2/opienet/ostation.h new file mode 100644 index 0000000..f61570b --- a/dev/null +++ b/libopie2/opienet/ostation.h | |||
@@ -0,0 +1,67 @@ | |||
1 | /* | ||
2 | This file is part of the Opie Project | ||
3 | |||
4 | (C) 2003 Michael 'Mickey' Lauer <mickey@tm.informatik.uni-frankfurt.de> | ||
5 | =. | ||
6 | .=l. | ||
7 | .>+-= | ||
8 | _;:, .> :=|. This program is free software; you can | ||
9 | .> <`_, > . <= redistribute it and/or modify it under | ||
10 | :`=1 )Y*s>-.-- : the terms of the GNU Library General Public | ||
11 | .="- .-=="i, .._ License as published by the Free Software | ||
12 | - . .-<_> .<> Foundation; either version 2 of the License, | ||
13 | ._= =} : or (at your option) any later version. | ||
14 | .%`+i> _;_. | ||
15 | .i_,=:_. -<s. This program is distributed in the hope that | ||
16 | + . -:. = it will be useful, but WITHOUT ANY WARRANTY; | ||
17 | : .. .:, . . . without even the implied warranty of | ||
18 | =_ + =;=|` MERCHANTABILITY or FITNESS FOR A | ||
19 | _.=:. : :=>`: PARTICULAR PURPOSE. See the GNU | ||
20 | ..}^=.= = ; Library General Public License for more | ||
21 | ++= -. .` .: details. | ||
22 | : = ...= . :.=- | ||
23 | -. .:....=;==+<; You should have received a copy of the GNU | ||
24 | -_. . . )=. = Library General Public License along with | ||
25 | -- :-=` this library; see the file COPYING.LIB. | ||
26 | If not, write to the Free Software Foundation, | ||
27 | Inc., 59 Temple Place - Suite 330, | ||
28 | Boston, MA 02111-1307, USA. | ||
29 | |||
30 | */ | ||
31 | |||
32 | #ifndef OSTATION_H | ||
33 | #define OSTATION_H | ||
34 | |||
35 | #include <opie2/onetutils.h> | ||
36 | |||
37 | #include <qdict.h> | ||
38 | #include <qmap.h> | ||
39 | #include <qstring.h> | ||
40 | #include <qhostaddress.h> | ||
41 | #include <qobject.h> | ||
42 | |||
43 | #include <sys/types.h> | ||
44 | |||
45 | class OStation; | ||
46 | |||
47 | typedef QDict<OStation> OStationDict; | ||
48 | |||
49 | /*====================================================================================== | ||
50 | * OStation | ||
51 | *======================================================================================*/ | ||
52 | |||
53 | class OStation | ||
54 | { | ||
55 | public: | ||
56 | OStation(); | ||
57 | ~OStation(); | ||
58 | |||
59 | private: | ||
60 | OMacAddress macAddress; | ||
61 | QHostAddress ipAddress; | ||
62 | QString ssid; | ||
63 | QString type; | ||
64 | }; | ||
65 | |||
66 | #endif // OSTATION_H | ||
67 | |||