-rw-r--r-- | libopie2/opienet/onetwork.cpp | 38 | ||||
-rw-r--r-- | libopie2/opienet/onetwork.h | 3 | ||||
-rw-r--r-- | libopie2/opienet/ostation.h | 2 |
3 files changed, 38 insertions, 5 deletions
diff --git a/libopie2/opienet/onetwork.cpp b/libopie2/opienet/onetwork.cpp index 546be9e..0a74019 100644 --- a/libopie2/opienet/onetwork.cpp +++ b/libopie2/opienet/onetwork.cpp | |||
@@ -39,4 +39,5 @@ | |||
39 | #include <qfile.h> | 39 | #include <qfile.h> |
40 | #include <qtextstream.h> | 40 | #include <qtextstream.h> |
41 | #include <qapplication.h> | ||
41 | 42 | ||
42 | /* UNIX */ | 43 | /* UNIX */ |
@@ -54,4 +55,5 @@ | |||
54 | #include <linux/sockios.h> | 55 | #include <linux/sockios.h> |
55 | #include <net/if_arp.h> | 56 | #include <net/if_arp.h> |
57 | #include <net/ethernet.h> | ||
56 | #include <stdarg.h> | 58 | #include <stdarg.h> |
57 | 59 | ||
@@ -492,4 +494,12 @@ bool OWirelessNetworkInterface::isAssociated() const | |||
492 | 494 | ||
493 | 495 | ||
496 | void OWirelessNetworkInterface::setAssociatedAP( const OMacAddress& mac ) const | ||
497 | { | ||
498 | _iwr.u.ap_addr.sa_family = ARPHRD_ETHER; | ||
499 | ::memcpy(_iwr.u.ap_addr.sa_data, mac.native(), ETH_ALEN); | ||
500 | wioctl( SIOCSIWAP ); | ||
501 | } | ||
502 | |||
503 | |||
494 | OMacAddress OWirelessNetworkInterface::associatedAP() const | 504 | OMacAddress OWirelessNetworkInterface::associatedAP() const |
495 | { | 505 | { |
@@ -907,5 +917,4 @@ OStationList* OWirelessNetworkInterface::scanNetwork() | |||
907 | { | 917 | { |
908 | odebug << "ONetworkInterface::scanNetwork() - scan in progress..." << oendl; | 918 | odebug << "ONetworkInterface::scanNetwork() - scan in progress..." << oendl; |
909 | #if 0 | ||
910 | if ( qApp ) | 919 | if ( qApp ) |
911 | { | 920 | { |
@@ -913,5 +922,4 @@ OStationList* OWirelessNetworkInterface::scanNetwork() | |||
913 | continue; | 922 | continue; |
914 | } | 923 | } |
915 | #endif | ||
916 | tv.tv_sec = 0; | 924 | tv.tv_sec = 0; |
917 | tv.tv_usec = 100000; | 925 | tv.tv_usec = 100000; |
@@ -1128,5 +1136,8 @@ OStationList* OWirelessNetworkInterface::scanNetwork() | |||
1128 | { | 1136 | { |
1129 | odebug << "SIOCGIWFREQ" << oendl; | 1137 | odebug << "SIOCGIWFREQ" << oendl; |
1130 | stations->last()->channel = _channels[ static_cast<int>(double( we->u.freq.m ) * pow( 10.0, we->u.freq.e ) / 1000000) ]; | 1138 | if ( we->u.freq.m > 1000 ) |
1139 | stations->last()->channel = _channels[ static_cast<int>(double( we->u.freq.m ) * pow( 10.0, we->u.freq.e ) / 1000000) ]; | ||
1140 | else | ||
1141 | stations->last()->channel = static_cast<int>(((double) we->u.freq.m) * pow( 10.0, we->u.freq.e )); | ||
1131 | break; | 1142 | break; |
1132 | } | 1143 | } |
@@ -1139,8 +1150,25 @@ OStationList* OWirelessNetworkInterface::scanNetwork() | |||
1139 | break; | 1150 | break; |
1140 | } | 1151 | } |
1152 | case IWEVQUAL: | ||
1153 | { | ||
1154 | odebug << "IWEVQUAL" << oendl; | ||
1155 | stations->last()->level = static_cast<int>(we->u.qual.level); | ||
1156 | break; /* Quality part of statistics (scan) */ | ||
1157 | } | ||
1158 | case SIOCGIWENCODE: | ||
1159 | { | ||
1160 | odebug << "SIOCGIWENCODE" << oendl; | ||
1161 | stations->last()->encrypted = !(we->u.data.flags & IW_ENCODE_DISABLED); | ||
1162 | break; | ||
1163 | } | ||
1164 | |||
1165 | case SIOCGIWRATE: | ||
1166 | { | ||
1167 | odebug << "SIOCGIWRATE" << oendl; | ||
1168 | stations->last()->rates.append(we->u.bitrate.value); | ||
1169 | break; | ||
1170 | } | ||
1141 | case SIOCGIWSENS: odebug << "SIOCGIWSENS" << oendl; break; | 1171 | case SIOCGIWSENS: odebug << "SIOCGIWSENS" << oendl; break; |
1142 | case SIOCGIWENCODE: odebug << "SIOCGIWENCODE" << oendl; break; | ||
1143 | case IWEVTXDROP: odebug << "IWEVTXDROP" << oendl; break; /* Packet dropped to excessive retry */ | 1172 | case IWEVTXDROP: odebug << "IWEVTXDROP" << oendl; break; /* Packet dropped to excessive retry */ |
1144 | case IWEVQUAL: odebug << "IWEVQUAL" << oendl; break; /* Quality part of statistics (scan) */ | ||
1145 | case IWEVCUSTOM: odebug << "IWEVCUSTOM" << oendl; break; /* Driver specific ascii string */ | 1173 | case IWEVCUSTOM: odebug << "IWEVCUSTOM" << oendl; break; /* Driver specific ascii string */ |
1146 | case IWEVREGISTERED: odebug << "IWEVREGISTERED" << oendl; break; /* Discovered a new node (AP mode) */ | 1174 | case IWEVREGISTERED: odebug << "IWEVREGISTERED" << oendl; break; /* Discovered a new node (AP mode) */ |
diff --git a/libopie2/opienet/onetwork.h b/libopie2/opienet/onetwork.h index 4d9912d..fa9f39f 100644 --- a/libopie2/opienet/onetwork.h +++ b/libopie2/opienet/onetwork.h | |||
@@ -414,4 +414,7 @@ class OWirelessNetworkInterface : public ONetworkInterface | |||
414 | */ | 414 | */ |
415 | virtual bool isAssociated() const; | 415 | virtual bool isAssociated() const; |
416 | /** Set the @a mac associated AP address. | ||
417 | */ | ||
418 | virtual void setAssociatedAP( const OMacAddress& mac ) const; | ||
416 | /** | 419 | /** |
417 | * @returns the MAC address of the Access Point if the device is in infrastructure mode. | 420 | * @returns the MAC address of the Access Point if the device is in infrastructure mode. |
diff --git a/libopie2/opienet/ostation.h b/libopie2/opienet/ostation.h index 5219d92..86c9a52 100644 --- a/libopie2/opienet/ostation.h +++ b/libopie2/opienet/ostation.h | |||
@@ -38,4 +38,5 @@ | |||
38 | #include <qhostaddress.h> | 38 | #include <qhostaddress.h> |
39 | #include <qobject.h> | 39 | #include <qobject.h> |
40 | #include <qvaluelist.h> | ||
40 | 41 | ||
41 | #include <sys/types.h> | 42 | #include <sys/types.h> |
@@ -72,4 +73,5 @@ class OStation | |||
72 | int level; | 73 | int level; |
73 | bool encrypted; | 74 | bool encrypted; |
75 | QValueList <int> rates; | ||
74 | private: | 76 | private: |
75 | class Private; | 77 | class Private; |