I'm trying to change the SSID for a connection and have written the following code:
func setSSID(conn gonetworkmanager.Connection, ssid string) error {
settings, err := conn.GetSettings()
if err != nil {
return fmt.Errorf("GetSettings failed: %v", err)
}
for k1, v1 := range settings {
for k2, v2 := range v1 {
log.Printf("[\"%s\"][\"%s\"] = \"%T\", \"%v\"", k1, k2, v2, v2)
}
}
settings["802-11-wireless"]["ssid"] = []byte(ssid)
// TODO: determine why these keys don't round trip correctly.
delete(settings["ipv6"], "addresses")
delete(settings["ipv6"], "routes")
err = conn.Update(settings)
if err != nil {
return fmt.Errorf("Update failed: %v", err)
}
return nil
}
2020/06/28 16:36:16 ["802-11-wireless-security"]["proto"] = "[]string", "[rsn]"
2020/06/28 16:36:16 ["802-11-wireless-security"]["group"] = "[]string", "[ccmp]"
2020/06/28 16:36:16 ["802-11-wireless-security"]["key-mgmt"] = "string", "wpa-psk"
2020/06/28 16:36:16 ["802-11-wireless-security"]["pairwise"] = "[]string", "[ccmp]"
2020/06/28 16:36:16 ["ipv4"]["address-data"] = "[]map[string]dbus.Variant", "[]"
2020/06/28 16:36:16 ["ipv4"]["addresses"] = "[][]uint32", "[]"
2020/06/28 16:36:16 ["ipv4"]["dns"] = "[]uint32", "[]"
2020/06/28 16:36:16 ["ipv4"]["dns-search"] = "[]string", "[]"
2020/06/28 16:36:16 ["ipv4"]["method"] = "string", "shared"
2020/06/28 16:36:16 ["ipv4"]["route-data"] = "[]map[string]dbus.Variant", "[]"
2020/06/28 16:36:16 ["ipv4"]["routes"] = "[][]uint32", "[]"
2020/06/28 16:36:16 ["ipv6"]["address-data"] = "[]map[string]dbus.Variant", "[]"
2020/06/28 16:36:16 ["ipv6"]["addresses"] = "[][]interface {}", "[]"
2020/06/28 16:36:16 ["ipv6"]["dns"] = "[][]uint8", "[]"
2020/06/28 16:36:16 ["ipv6"]["dns-search"] = "[]string", "[]"
2020/06/28 16:36:16 ["ipv6"]["method"] = "string", "ignore"
2020/06/28 16:36:16 ["ipv6"]["route-data"] = "[]map[string]dbus.Variant", "[]"
2020/06/28 16:36:16 ["ipv6"]["routes"] = "[][]interface {}", "[]"
2020/06/28 16:36:16 ["connection"]["timestamp"] = "uint64", "1593362134"
2020/06/28 16:36:16 ["connection"]["uuid"] = "string", "833d47c1-fb7f-4dc8-9a73-51fc4337deb3"
2020/06/28 16:36:16 ["connection"]["type"] = "string", "802-11-wireless"
2020/06/28 16:36:16 ["connection"]["id"] = "string", "Hotspot"
2020/06/28 16:36:16 ["connection"]["permissions"] = "[]string", "[]"
2020/06/28 16:36:16 ["802-11-wireless"]["seen-bssids"] = "[]string", "[DC:A6:32:81:8C:72]"
2020/06/28 16:36:16 ["802-11-wireless"]["ssid"] = "[]uint8", "[84 69 77 83 45 67 84 82 76 45 72 85 66 45 66 65 76 69 78 65]"
2020/06/28 16:36:16 ["802-11-wireless"]["mac-address-blacklist"] = "[]string", "[]"
2020/06/28 16:36:16 ["802-11-wireless"]["mode"] = "string", "ap"
2020/06/28 16:36:16 ["802-11-wireless"]["security"] = "string", "802-11-wireless-security"
I'm not familiar with the code, but I suspect a bug somewhere.