From 1d721ddb247e9000e29fba3150e0cce5f59f543e Mon Sep 17 00:00:00 2001 From: mickeyl Date: Thu, 01 May 2003 00:59:20 +0000 Subject: implement and document a bunch of missing methods --- (limited to 'libopie2/opienet/onetwork.cpp') diff --git a/libopie2/opienet/onetwork.cpp b/libopie2/opienet/onetwork.cpp index 95e7043..2dfff1d 100644 --- a/libopie2/opienet/onetwork.cpp +++ b/libopie2/opienet/onetwork.cpp @@ -42,6 +42,7 @@ /* UNIX */ +#include #include #include #include @@ -639,6 +640,48 @@ OChannelHopper* OWirelessNetworkInterface::channelHopper() const } +void OWirelessNetworkInterface::setMode( const QString& mode ) +{ + if ( mode == "auto" ) _iwr.u.mode = IW_MODE_AUTO; + else if ( mode == "adhoc" ) _iwr.u.mode = IW_MODE_ADHOC; + else if ( mode == "managed" ) _iwr.u.mode = IW_MODE_INFRA; + else if ( mode == "master" ) _iwr.u.mode = IW_MODE_MASTER; + else if ( mode == "repeater" ) _iwr.u.mode = IW_MODE_REPEAT; + else if ( mode == "secondary" ) _iwr.u.mode = IW_MODE_SECOND; + #if WIRELESS_EXT > 14 + else if ( mode == "monitor" ) _iwr.u.mode = IW_MODE_MONITOR; + #endif + else + { + qDebug( "ONetwork: Warning! Invalid IEEE 802.11 mode '%s' specified.", (const char*) mode ); + return; + } + wioctl( SIOCSIWMODE ); +} + + +QString OWirelessNetworkInterface::mode() const +{ + if ( !wioctl( SIOCGIWMODE ) ) + { + return ""; + } + switch ( _iwr.u.mode ) + { + case IW_MODE_AUTO: return "auto"; + case IW_MODE_ADHOC: return "adhoc"; + case IW_MODE_INFRA: return "managed"; + case IW_MODE_MASTER: return "master"; + case IW_MODE_REPEAT: return "repeater"; + case IW_MODE_SECOND: return "secondary"; + #if WIRELESS_EXT > 14 + case IW_MODE_MONITOR: return "monitor"; + #endif + default: assert( 0 ); // shouldn't happen + } +} + + void OWirelessNetworkInterface::setMonitorMode( bool b ) { if ( _mon ) @@ -656,6 +699,14 @@ bool OWirelessNetworkInterface::monitorMode() const } +void OWirelessNetworkInterface::setNickName( const QString& nickname ) +{ + _iwr.u.essid.pointer = const_cast( (const char*) nickname ); + _iwr.u.essid.length = nickname.length(); + wioctl( SIOCSIWNICKN ); +} + + QString OWirelessNetworkInterface::nickName() const { char str[IW_ESSID_MAX_SIZE]; -- cgit v0.9.0.2