-rw-r--r-- | libopie2/opienet/onetwork.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/libopie2/opienet/onetwork.cpp b/libopie2/opienet/onetwork.cpp index be45924..918ba07 100644 --- a/libopie2/opienet/onetwork.cpp +++ b/libopie2/opienet/onetwork.cpp | |||
@@ -49,24 +49,29 @@ | |||
49 | #include <cstdlib> | 49 | #include <cstdlib> |
50 | #include <math.h> | 50 | #include <math.h> |
51 | #include <sys/ioctl.h> | 51 | #include <sys/ioctl.h> |
52 | #include <sys/socket.h> | 52 | #include <sys/socket.h> |
53 | #include <sys/types.h> | 53 | #include <sys/types.h> |
54 | #include <unistd.h> | 54 | #include <unistd.h> |
55 | #include <linux/sockios.h> | 55 | #include <linux/sockios.h> |
56 | #include <net/if_arp.h> | 56 | #include <net/if_arp.h> |
57 | #include <stdarg.h> | 57 | #include <stdarg.h> |
58 | 58 | ||
59 | using namespace std; | 59 | using namespace std; |
60 | 60 | ||
61 | #ifndef NODEBUG | ||
62 | #include <opie2/oioctlmap.h> | ||
63 | IntStringMap* _ioctlmap = constructIoctlMap(); | ||
64 | #endif | ||
65 | |||
61 | /*====================================================================================== | 66 | /*====================================================================================== |
62 | * ONetwork | 67 | * ONetwork |
63 | *======================================================================================*/ | 68 | *======================================================================================*/ |
64 | 69 | ||
65 | ONetwork* ONetwork::_instance = 0; | 70 | ONetwork* ONetwork::_instance = 0; |
66 | 71 | ||
67 | ONetwork::ONetwork() | 72 | ONetwork::ONetwork() |
68 | { | 73 | { |
69 | qDebug( "ONetwork::ONetwork()" ); | 74 | qDebug( "ONetwork::ONetwork()" ); |
70 | qDebug( "ONetwork: This code has been compiled against Wireless Extensions V%d", WIRELESS_EXT ); | 75 | qDebug( "ONetwork: This code has been compiled against Wireless Extensions V%d", WIRELESS_EXT ); |
71 | synchronize(); | 76 | synchronize(); |
72 | } | 77 | } |
@@ -178,30 +183,34 @@ void ONetworkInterface::init() | |||
178 | memset( &_ifr, 0, sizeof( struct ifreq ) ); | 183 | memset( &_ifr, 0, sizeof( struct ifreq ) ); |
179 | 184 | ||
180 | if ( _sfd == -1 ) | 185 | if ( _sfd == -1 ) |
181 | { | 186 | { |
182 | qDebug( "ONetworkInterface::init(): Warning - can't get socket for device '%s'", name() ); | 187 | qDebug( "ONetworkInterface::init(): Warning - can't get socket for device '%s'", name() ); |
183 | return; | 188 | return; |
184 | } | 189 | } |
185 | } | 190 | } |
186 | 191 | ||
187 | 192 | ||
188 | bool ONetworkInterface::ioctl( int call, struct ifreq& ifreq ) const | 193 | bool ONetworkInterface::ioctl( int call, struct ifreq& ifreq ) const |
189 | { | 194 | { |
195 | #ifndef NODEBUG | ||
190 | int result = ::ioctl( _sfd, call, &ifreq ); | 196 | int result = ::ioctl( _sfd, call, &ifreq ); |
191 | if ( result == -1 ) | 197 | if ( result == -1 ) |
192 | qDebug( "ONetworkInterface::ioctl (%s) call %d (0x%04X) - Status: Failed: %d (%s)", name(), call, call, result, strerror( errno ) ); | 198 | qDebug( "ONetworkInterface::ioctl (%s) call %s (0x%04X) - Status: Failed: %d (%s)", name(), (const char*) *(*_ioctlmap)[call], call, result, strerror( errno ) ); |
193 | else | 199 | else |
194 | qDebug( "ONetworkInterface::ioctl (%s) call %d (0x%04X) - Status: Ok.", name(), call, call ); | 200 | qDebug( "ONetworkInterface::ioctl (%s) call %s (0x%04X) - Status: Ok.", name(), (const char*) *(*_ioctlmap)[call], call ); |
195 | return ( result != -1 ); | 201 | return ( result != -1 ); |
202 | #else | ||
203 | return ::ioctl( _sfd, call, &ifreq ) != -1; | ||
204 | #endif | ||
196 | } | 205 | } |
197 | 206 | ||
198 | 207 | ||
199 | bool ONetworkInterface::ioctl( int call ) const | 208 | bool ONetworkInterface::ioctl( int call ) const |
200 | { | 209 | { |
201 | strcpy( _ifr.ifr_name, name() ); | 210 | strcpy( _ifr.ifr_name, name() ); |
202 | return ioctl( call, _ifr ); | 211 | return ioctl( call, _ifr ); |
203 | } | 212 | } |
204 | 213 | ||
205 | 214 | ||
206 | bool ONetworkInterface::isLoopback() const | 215 | bool ONetworkInterface::isLoopback() const |
207 | { | 216 | { |
@@ -874,30 +883,34 @@ int OWirelessNetworkInterface::scanNetwork() | |||
874 | { | 883 | { |
875 | qDebug( " - results are in!" ); | 884 | qDebug( " - results are in!" ); |
876 | } | 885 | } |
877 | else | 886 | else |
878 | { | 887 | { |
879 | qDebug( " - no results :(" ); | 888 | qDebug( " - no results :(" ); |
880 | } | 889 | } |
881 | } | 890 | } |
882 | 891 | ||
883 | 892 | ||
884 | bool OWirelessNetworkInterface::wioctl( int call, struct iwreq& iwreq ) const | 893 | bool OWirelessNetworkInterface::wioctl( int call, struct iwreq& iwreq ) const |
885 | { | 894 | { |
895 | #ifndef NODEBUG | ||
886 | int result = ::ioctl( _sfd, call, &iwreq ); | 896 | int result = ::ioctl( _sfd, call, &iwreq ); |
887 | if ( result == -1 ) | 897 | if ( result == -1 ) |
888 | qDebug( "ONetworkInterface::wioctl (%s) call %d (0x%04X) - Status: Failed: %d (%s)", name(), call, call, result, strerror( errno ) ); | 898 | qDebug( "ONetworkInterface::wioctl (%s) call %s (0x%04X) - Status: Failed: %d (%s)", name(), (const char*) *(*_ioctlmap)[call], call, result, strerror( errno ) ); |
889 | else | 899 | else |
890 | qDebug( "ONetworkInterface::wioctl (%s) call %d (0x%04X) - Status: Ok.", name(), call, call ); | 900 | qDebug( "ONetworkInterface::wioctl (%s) call %s (0x%04X) - Status: Ok.", name(), (const char*) *(*_ioctlmap)[call], call ); |
891 | return ( result != -1 ); | 901 | return ( result != -1 ); |
902 | #else | ||
903 | return ::ioctl( _sfd, call, &iwreq ) != -1; | ||
904 | #endif | ||
892 | } | 905 | } |
893 | 906 | ||
894 | 907 | ||
895 | bool OWirelessNetworkInterface::wioctl( int call ) const | 908 | bool OWirelessNetworkInterface::wioctl( int call ) const |
896 | { | 909 | { |
897 | strcpy( _iwr.ifr_name, name() ); | 910 | strcpy( _iwr.ifr_name, name() ); |
898 | return wioctl( call, _iwr ); | 911 | return wioctl( call, _iwr ); |
899 | } | 912 | } |
900 | 913 | ||
901 | 914 | ||
902 | /*====================================================================================== | 915 | /*====================================================================================== |
903 | * OMonitoringInterface | 916 | * OMonitoringInterface |