Do stations scan/retrieval
This commit is contained in:
parent
5f1d7adaa4
commit
b3da6774ac
2 changed files with 8 additions and 30 deletions
26
main.go
26
main.go
|
|
@ -324,7 +324,7 @@ func scanWiFiNetworks() ([]WiFiNetwork, error) {
|
|||
|
||||
// Déclencher un scan
|
||||
wifiInterface := dbusConn.Object(WPA_SUPPLICANT_SERVICE, interfacePath)
|
||||
call := wifiInterface.Call(WPA_INTERFACE_IFACE+".Scan", 0, map[string]dbus.Variant{})
|
||||
call := wifiInterface.Call(WPA_INTERFACE_IFACE+".Scan", 0, map[string]dbus.Variant{"Type": dbus.MakeVariant("active")})
|
||||
if call.Err != nil {
|
||||
return nil, fmt.Errorf("erreur lors du scan: %v", call.Err)
|
||||
}
|
||||
|
|
@ -333,8 +333,7 @@ func scanWiFiNetworks() ([]WiFiNetwork, error) {
|
|||
time.Sleep(2 * time.Second)
|
||||
|
||||
// Récupérer la liste des BSS
|
||||
var bssePaths []dbus.ObjectPath
|
||||
err = wifiInterface.Call(WPA_INTERFACE_IFACE+".Get", 0, WPA_INTERFACE_IFACE, "BSSs").Store(&bssePaths)
|
||||
bssePaths, err := wifiInterface.GetProperty(WPA_INTERFACE_IFACE + ".BSSs")
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("erreur lors de la récupération des BSS: %v", err)
|
||||
}
|
||||
|
|
@ -342,7 +341,7 @@ func scanWiFiNetworks() ([]WiFiNetwork, error) {
|
|||
var networks []WiFiNetwork
|
||||
seenSSIDs := make(map[string]bool)
|
||||
|
||||
for _, bssPath := range bssePaths {
|
||||
for _, bssPath := range bssePaths.Value().([]dbus.ObjectPath) {
|
||||
bss := dbusConn.Object(WPA_SUPPLICANT_SERVICE, bssPath)
|
||||
|
||||
// Récupérer les propriétés du BSS
|
||||
|
|
@ -472,26 +471,13 @@ func disconnectWiFiDBus() error {
|
|||
}
|
||||
|
||||
func getWiFiInterfacePath() (dbus.ObjectPath, error) {
|
||||
var interfaces []dbus.ObjectPath
|
||||
err := wpaSupplicant.Call(WPA_SUPPLICANT_IFACE+".Get", 0, WPA_SUPPLICANT_IFACE, "Interfaces").Store(&interfaces)
|
||||
var interfacePath dbus.ObjectPath
|
||||
err := wpaSupplicant.Call(WPA_SUPPLICANT_IFACE+".GetInterface", 0, WLAN_INTERFACE).Store(&interfacePath)
|
||||
if err != nil {
|
||||
return "", fmt.Errorf("erreur lors de la récupération des interfaces: %v", err)
|
||||
}
|
||||
|
||||
for _, interfacePath := range interfaces {
|
||||
wifiInterface := dbusConn.Object(WPA_SUPPLICANT_SERVICE, interfacePath)
|
||||
var ifname string
|
||||
err = wifiInterface.Call(WPA_INTERFACE_IFACE+".Get", 0, WPA_INTERFACE_IFACE, "Ifname").Store(&ifname)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
|
||||
if ifname == WLAN_INTERFACE {
|
||||
return interfacePath, nil
|
||||
}
|
||||
}
|
||||
|
||||
return "", fmt.Errorf("interface %s non trouvée", WLAN_INTERFACE)
|
||||
return interfacePath, nil
|
||||
}
|
||||
|
||||
func isConnectedDBus() bool {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue