Expand description
WPA controller
Usage
use wpa_ctrl::{WpaControlReq, WpaControllerBuilder};
const WPA_CTRL_BUILD: WpaControllerBuilder<'static> = WpaControllerBuilder::new();
let mut ctrl = match WPA_CTRL_BUILD.open("wlan0") {
Ok(ctrl) => ctrl,
Err(error) => panic!("Cannot open wlan0"),
};
ctrl.request(WpaControlReq::status()).expect("Successful command");
while let Some(resp) = ctrl.recv().expect("To read message") {
//Skip messages that are not intended as responses
if resp.is_unsolicited() {
continue;
}
if let Some(status) = resp.as_status() {
println!("Network status={:?}", status);
break;
}
}
Usage scenarios
Add new network
- Optionally
scan
and check list of networks usingscan_results
add_network
which returns returnsid
of networkset_network <id> ssid "network name"
which specifies network’s name to associate withset_network <id> psk "WAP password"
which specifies WPA password, only usable when network requires WPA securityset_network <id> key_mgmt NONE
which specifies no security, required to connect to networks without passwordselect_network <id>
- Select network for use.save_config
- Optionally to save configuration.
Reconnect
- Optionally
disconnect
; - Run
reassociate
to start process of connecting to currently selected network
Structs
Indicates failure of command
Network id
Pong Message
Surrounds value with quotes, useful when setting
ssid
or psk
Indicates success of command
Message.
Request type
WPA controller
Client builder
Network description
Network’s flag, describing its current state.
Iterator over list of networks
Interface status
Enums
Interface state