mirror of
https://github.com/0x1d/rcond.git
synced 2025-12-14 10:16:50 +01:00
feat: map wireless settings separately, add missing properties
This commit is contained in:
@@ -8,6 +8,8 @@ network:
|
||||
connections:
|
||||
# create access point and share network connection on wlan0
|
||||
- name: MyHomeWiFi
|
||||
id: MyHomeWiFi
|
||||
uuid: 222b4580-3e08-4a2c-ae5e-316bb45d44f0
|
||||
type: 802-11-wireless
|
||||
interface: wlan0
|
||||
ssid: MyHomeWiFi
|
||||
|
||||
@@ -8,6 +8,8 @@ network:
|
||||
connections:
|
||||
# connect to MyHomeWifi on wlan0
|
||||
- name: MyHomeWiFi
|
||||
id: MyHomeWiFi
|
||||
uuid: f09c9d1a-af3f-4726-82dd-0dd9d3358a4e
|
||||
type: 802-11-wireless
|
||||
interface: wlan0
|
||||
ssid: MyHomeWiFi
|
||||
@@ -20,6 +22,8 @@ network:
|
||||
# TODO
|
||||
# provide DHCP on eth0
|
||||
#- name: MyThingsNetwork
|
||||
# id: MyThingsNetwork
|
||||
# uuid: 12df0b71-73ca-4ca2-a5f6-be20983a311d
|
||||
# type: 802-3-ethernet
|
||||
# interface: eth0
|
||||
# method: shared
|
||||
|
||||
@@ -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