mirror of
https://github.com/0x1d/rcond.git
synced 2025-12-14 18:25:21 +01:00
feat: map wireless settings separately, add missing properties
This commit is contained in:
@@ -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).
|
||||
|
||||
Reference in New Issue
Block a user