feat: map wireless settings separately, add missing properties

This commit is contained in:
2025-05-18 19:11:57 +02:00
parent d950b3627d
commit e1fdf51ed0
3 changed files with 31 additions and 20 deletions

View File

@@ -248,21 +248,6 @@ func AddConnectionWithConfig(conn *dbus.Conn, cfg *ConnectionConfig) (dbus.Objec
"/org/freedesktop/NetworkManager/Settings",
)
var wirelessMap map[string]dbus.Variant
if cfg.Mode == "ap" {
wirelessMap = map[string]dbus.Variant{
"ssid": dbus.MakeVariant([]byte(cfg.SSID)),
"mode": dbus.MakeVariant(cfg.Mode),
"band": dbus.MakeVariant(cfg.Band),
"channel": dbus.MakeVariant(cfg.Channel),
}
} else {
wirelessMap = map[string]dbus.Variant{
"ssid": dbus.MakeVariant([]byte(cfg.SSID)),
"mode": dbus.MakeVariant(cfg.Mode),
}
}
settingsMap := map[string]map[string]dbus.Variant{
"connection": {
"type": dbus.MakeVariant(cfg.Type),
@@ -270,11 +255,6 @@ func AddConnectionWithConfig(conn *dbus.Conn, cfg *ConnectionConfig) (dbus.Objec
"id": dbus.MakeVariant(cfg.ID),
"autoconnect": dbus.MakeVariant(cfg.AutoConnect),
},
"802-11-wireless": wirelessMap,
"802-11-wireless-security": {
"key-mgmt": dbus.MakeVariant(cfg.KeyMgmt),
"psk": dbus.MakeVariant(cfg.PSK),
},
"ipv4": {
"method": dbus.MakeVariant(cfg.IPv4Method),
},
@@ -283,6 +263,31 @@ func AddConnectionWithConfig(conn *dbus.Conn, cfg *ConnectionConfig) (dbus.Objec
},
}
// configure wireless
if cfg.Type == "802-11-wireless" {
var wirelessMap map[string]dbus.Variant
if cfg.Mode == "ap" {
// Access Point mode
wirelessMap = map[string]dbus.Variant{
"ssid": dbus.MakeVariant([]byte(cfg.SSID)),
"mode": dbus.MakeVariant(cfg.Mode),
"band": dbus.MakeVariant(cfg.Band),
"channel": dbus.MakeVariant(cfg.Channel),
}
} else {
// Station / Infrastructure mode
wirelessMap = map[string]dbus.Variant{
"ssid": dbus.MakeVariant([]byte(cfg.SSID)),
"mode": dbus.MakeVariant(cfg.Mode),
}
}
settingsMap["802-11-wireless"] = wirelessMap
settingsMap["802-11-wireless-security"] = map[string]dbus.Variant{
"key-mgmt": dbus.MakeVariant(cfg.KeyMgmt),
"psk": dbus.MakeVariant(cfg.PSK),
}
}
var connPath dbus.ObjectPath
err := settingsObj.
Call("org.freedesktop.NetworkManager.Settings.AddConnection", 0, settingsMap).