-rw-r--r-- | libopie2/opienet/onetwork.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libopie2/opienet/onetwork.cpp b/libopie2/opienet/onetwork.cpp index 0a74019..f4bdbe0 100644 --- a/libopie2/opienet/onetwork.cpp +++ b/libopie2/opienet/onetwork.cpp | |||
@@ -95,24 +95,30 @@ void ONetwork::synchronize() | |||
95 | { | 95 | { |
96 | odebug << "ONetwork: /proc/net/dev not existing. No network devices available" << oendl; | 96 | odebug << "ONetwork: /proc/net/dev not existing. No network devices available" << oendl; |
97 | return; | 97 | return; |
98 | } | 98 | } |
99 | QTextStream s( &f ); | 99 | QTextStream s( &f ); |
100 | s.readLine(); | 100 | s.readLine(); |
101 | s.readLine(); | 101 | s.readLine(); |
102 | while ( !s.atEnd() ) | 102 | while ( !s.atEnd() ) |
103 | { | 103 | { |
104 | s >> str; | 104 | s >> str; |
105 | str.truncate( str.find( ':' ) ); | 105 | str.truncate( str.find( ':' ) ); |
106 | odebug << "ONetwork: found interface '" << str << "'" << oendl; | 106 | odebug << "ONetwork: found interface '" << str << "'" << oendl; |
107 | if ( str.startsWith( "wifi" ) ) | ||
108 | { | ||
109 | odebug << "ONetwork: ignoring hostap control interface" << oendl; | ||
110 | s.readLine(); | ||
111 | continue; | ||
112 | } | ||
107 | ONetworkInterface* iface = 0; | 113 | ONetworkInterface* iface = 0; |
108 | if ( isWirelessInterface( str ) ) | 114 | if ( isWirelessInterface( str ) ) |
109 | { | 115 | { |
110 | iface = new OWirelessNetworkInterface( this, (const char*) str ); | 116 | iface = new OWirelessNetworkInterface( this, (const char*) str ); |
111 | odebug << "ONetwork: interface '" << str << "' has Wireless Extensions" << oendl; | 117 | odebug << "ONetwork: interface '" << str << "' has Wireless Extensions" << oendl; |
112 | } | 118 | } |
113 | else | 119 | else |
114 | { | 120 | { |
115 | iface = new ONetworkInterface( this, (const char*) str ); | 121 | iface = new ONetworkInterface( this, (const char*) str ); |
116 | } | 122 | } |
117 | _interfaces.insert( str, iface ); | 123 | _interfaces.insert( str, iface ); |
118 | s.readLine(); | 124 | s.readLine(); |
@@ -799,25 +805,25 @@ void OWirelessNetworkInterface::setNickName( const QString& nickname ) | |||
799 | 805 | ||
800 | QString OWirelessNetworkInterface::nickName() const | 806 | QString OWirelessNetworkInterface::nickName() const |
801 | { | 807 | { |
802 | char str[IW_ESSID_MAX_SIZE]; | 808 | char str[IW_ESSID_MAX_SIZE]; |
803 | _iwr.u.data.pointer = &str[0]; | 809 | _iwr.u.data.pointer = &str[0]; |
804 | _iwr.u.data.length = IW_ESSID_MAX_SIZE; | 810 | _iwr.u.data.length = IW_ESSID_MAX_SIZE; |
805 | if ( !wioctl( SIOCGIWNICKN ) ) | 811 | if ( !wioctl( SIOCGIWNICKN ) ) |
806 | { | 812 | { |
807 | return "<unknown>"; | 813 | return "<unknown>"; |
808 | } | 814 | } |
809 | else | 815 | else |
810 | { | 816 | { |
811 | str[_iwr.u.data.length] = 0x0; // some drivers (e.g. wlan-ng) don't zero-terminate the string | 817 | str[_iwr.u.data.length] = '\0'; // some drivers don't zero-terminate the string |
812 | return str; | 818 | return str; |
813 | } | 819 | } |
814 | } | 820 | } |
815 | 821 | ||
816 | 822 | ||
817 | void OWirelessNetworkInterface::setPrivate( const QString& call, int numargs, ... ) | 823 | void OWirelessNetworkInterface::setPrivate( const QString& call, int numargs, ... ) |
818 | { | 824 | { |
819 | OPrivateIOCTL* priv = static_cast<OPrivateIOCTL*>( child( (const char*) call ) ); | 825 | OPrivateIOCTL* priv = static_cast<OPrivateIOCTL*>( child( (const char*) call ) ); |
820 | if ( !priv ) | 826 | if ( !priv ) |
821 | { | 827 | { |
822 | owarn << "OWirelessNetworkInterface::setPrivate(): interface '" << name() | 828 | owarn << "OWirelessNetworkInterface::setPrivate(): interface '" << name() |
823 | << "' does not support private ioctl '" << call << "'" << oendl; | 829 | << "' does not support private ioctl '" << call << "'" << oendl; |
@@ -857,24 +863,25 @@ bool OWirelessNetworkInterface::hasPrivate( const QString& call ) | |||
857 | 863 | ||
858 | QString OWirelessNetworkInterface::SSID() const | 864 | QString OWirelessNetworkInterface::SSID() const |
859 | { | 865 | { |
860 | char str[IW_ESSID_MAX_SIZE]; | 866 | char str[IW_ESSID_MAX_SIZE]; |
861 | _iwr.u.essid.pointer = &str[0]; | 867 | _iwr.u.essid.pointer = &str[0]; |
862 | _iwr.u.essid.length = IW_ESSID_MAX_SIZE; | 868 | _iwr.u.essid.length = IW_ESSID_MAX_SIZE; |
863 | if ( !wioctl( SIOCGIWESSID ) ) | 869 | if ( !wioctl( SIOCGIWESSID ) ) |
864 | { | 870 | { |
865 | return "<unknown>"; | 871 | return "<unknown>"; |
866 | } | 872 | } |
867 | else | 873 | else |
868 | { | 874 | { |
875 | str[_iwr.u.essid.length] = '\0'; // some drivers don't zero-terminate the string | ||
869 | return str; | 876 | return str; |
870 | } | 877 | } |
871 | } | 878 | } |
872 | 879 | ||
873 | 880 | ||
874 | void OWirelessNetworkInterface::setSSID( const QString& ssid ) | 881 | void OWirelessNetworkInterface::setSSID( const QString& ssid ) |
875 | { | 882 | { |
876 | _iwr.u.essid.pointer = const_cast<char*>( (const char*) ssid ); | 883 | _iwr.u.essid.pointer = const_cast<char*>( (const char*) ssid ); |
877 | _iwr.u.essid.length = ssid.length()+1; // zero byte | 884 | _iwr.u.essid.length = ssid.length()+1; // zero byte |
878 | wioctl( SIOCSIWESSID ); | 885 | wioctl( SIOCSIWESSID ); |
879 | } | 886 | } |
880 | 887 | ||