summaryrefslogtreecommitdiff
path: root/libopie2/opienet/onetwork.cpp
Unidiff
Diffstat (limited to 'libopie2/opienet/onetwork.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r--libopie2/opienet/onetwork.cpp21
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
59using namespace std; 59using namespace std;
60 60
61#ifndef NODEBUG
62#include <opie2/oioctlmap.h>
63IntStringMap* _ioctlmap = constructIoctlMap();
64#endif
65
61/*====================================================================================== 66/*======================================================================================
62 * ONetwork 67 * ONetwork
63 *======================================================================================*/ 68 *======================================================================================*/
64 69
65ONetwork* ONetwork::_instance = 0; 70ONetwork* ONetwork::_instance = 0;
66 71
67ONetwork::ONetwork() 72ONetwork::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
188bool ONetworkInterface::ioctl( int call, struct ifreq& ifreq ) const 193bool 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
199bool ONetworkInterface::ioctl( int call ) const 208bool 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
206bool ONetworkInterface::isLoopback() const 215bool 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
884bool OWirelessNetworkInterface::wioctl( int call, struct iwreq& iwreq ) const 893bool 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
895bool OWirelessNetworkInterface::wioctl( int call ) const 908bool 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