wpa_supplicant: Fix detection of open networks
This commit is contained in:
parent
2922a03724
commit
10a7998495
1 changed files with 20 additions and 3 deletions
|
|
@ -137,13 +137,13 @@ func (b *BSS) GetSignal() (int16, error) {
|
||||||
|
|
||||||
// DetermineSecurityType determines the security type based on BSS properties
|
// DetermineSecurityType determines the security type based on BSS properties
|
||||||
func (p *BSSProperties) DetermineSecurityType() string {
|
func (p *BSSProperties) DetermineSecurityType() string {
|
||||||
// Check for WPA2 (RSN)
|
// Check for WPA2 (RSN) - need to check if KeyMgmt has actual values
|
||||||
if len(p.RSN) > 0 {
|
if hasKeyManagement(p.RSN) {
|
||||||
return "psk"
|
return "psk"
|
||||||
}
|
}
|
||||||
|
|
||||||
// Check for WPA
|
// Check for WPA
|
||||||
if len(p.WPA) > 0 {
|
if hasKeyManagement(p.WPA) {
|
||||||
return "psk"
|
return "psk"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -155,3 +155,20 @@ func (p *BSSProperties) DetermineSecurityType() string {
|
||||||
// Open network
|
// Open network
|
||||||
return "open"
|
return "open"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// hasKeyManagement checks if a WPA/RSN map contains actual key management methods
|
||||||
|
func hasKeyManagement(secMap map[string]dbus.Variant) bool {
|
||||||
|
if len(secMap) == 0 {
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
||||||
|
// Check if KeyMgmt field exists and has values
|
||||||
|
if keyMgmtVariant, ok := secMap["KeyMgmt"]; ok {
|
||||||
|
// KeyMgmt is an array of strings
|
||||||
|
if keyMgmt, ok := keyMgmtVariant.Value().([]string); ok {
|
||||||
|
return len(keyMgmt) > 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue