wpa-ctrl

Crates.iowpa-ctrl
lib.rswpa-ctrl
version0.2.1
sourcesrc
created_at2022-08-25 14:05:57.594782
updated_at2024-01-13 12:08:29.111053
descriptionWPA controller interface
homepage
repositoryhttps://github.com/DoumanAsh/wpa-ctrl
max_upload_size
id652193
size30,853
Douman (DoumanAsh)

documentation

README

wpa-ctrl

Rust Crates.io Documentation

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 using scan_results
  • add_network which returns returns id of network
  • set_network <id> ssid "network name" which specifies network's name to associate with
  • set_network <id> psk "WAP password" which specifies WPA password, only usable when network requires WPA security
  • set_network <id> key_mgmt NONE which specifies no security, required to connect to networks without password
  • select_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
Commit count: 6

cargo fmt