wifui 0.5.0

A lightweight, keyboard-driven Terminal User Interface (TUI) for managing Wi-Fi connections on Windows and Linux.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::error::{WifiError, WifiResult};
use crate::wifi::handle::WlanHandle;
use windows::Win32::{Foundation::ERROR_SUCCESS, NetworkManagement::WiFi::*};

/// Trigger a network scan
pub fn scan_networks() -> WifiResult<()> {
    let handle = WlanHandle::open()?;
    let guid = handle.get_interface_guid()?;

    unsafe {
        let result = WlanScan(handle.as_raw(), &guid, None, None, None);
        if result != ERROR_SUCCESS.0 {
            return Err(WifiError::ScanFailed { code: result });
        }
    }
    Ok(())
}