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:
@@ -8,6 +8,8 @@ network:
|
|||||||
connections:
|
connections:
|
||||||
# create access point and share network connection on wlan0
|
# create access point and share network connection on wlan0
|
||||||
- name: MyHomeWiFi
|
- name: MyHomeWiFi
|
||||||
|
id: MyHomeWiFi
|
||||||
|
uuid: 222b4580-3e08-4a2c-ae5e-316bb45d44f0
|
||||||
type: 802-11-wireless
|
type: 802-11-wireless
|
||||||
interface: wlan0
|
interface: wlan0
|
||||||
ssid: MyHomeWiFi
|
ssid: MyHomeWiFi
|
||||||
|
|||||||
@@ -8,6 +8,8 @@ network:
|
|||||||
connections:
|
connections:
|
||||||
# connect to MyHomeWifi on wlan0
|
# connect to MyHomeWifi on wlan0
|
||||||
- name: MyHomeWiFi
|
- name: MyHomeWiFi
|
||||||
|
id: MyHomeWiFi
|
||||||
|
uuid: f09c9d1a-af3f-4726-82dd-0dd9d3358a4e
|
||||||
type: 802-11-wireless
|
type: 802-11-wireless
|
||||||
interface: wlan0
|
interface: wlan0
|
||||||
ssid: MyHomeWiFi
|
ssid: MyHomeWiFi
|
||||||
@@ -20,6 +22,8 @@ network:
|
|||||||
# TODO
|
# TODO
|
||||||
# provide DHCP on eth0
|
# provide DHCP on eth0
|
||||||
#- name: MyThingsNetwork
|
#- name: MyThingsNetwork
|
||||||
|
# id: MyThingsNetwork
|
||||||
|
# uuid: 12df0b71-73ca-4ca2-a5f6-be20983a311d
|
||||||
# type: 802-3-ethernet
|
# type: 802-3-ethernet
|
||||||
# interface: eth0
|
# interface: eth0
|
||||||
# method: shared
|
# method: shared
|
||||||
|
|||||||
@@ -248,21 +248,6 @@ func AddConnectionWithConfig(conn *dbus.Conn, cfg *ConnectionConfig) (dbus.Objec
|
|||||||
"/org/freedesktop/NetworkManager/Settings",
|
"/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{
|
settingsMap := map[string]map[string]dbus.Variant{
|
||||||
"connection": {
|
"connection": {
|
||||||
"type": dbus.MakeVariant(cfg.Type),
|
"type": dbus.MakeVariant(cfg.Type),
|
||||||
@@ -270,11 +255,6 @@ func AddConnectionWithConfig(conn *dbus.Conn, cfg *ConnectionConfig) (dbus.Objec
|
|||||||
"id": dbus.MakeVariant(cfg.ID),
|
"id": dbus.MakeVariant(cfg.ID),
|
||||||
"autoconnect": dbus.MakeVariant(cfg.AutoConnect),
|
"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": {
|
"ipv4": {
|
||||||
"method": dbus.MakeVariant(cfg.IPv4Method),
|
"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
|
var connPath dbus.ObjectPath
|
||||||
err := settingsObj.
|
err := settingsObj.
|
||||||
Call("org.freedesktop.NetworkManager.Settings.AddConnection", 0, settingsMap).
|
Call("org.freedesktop.NetworkManager.Settings.AddConnection", 0, settingsMap).
|
||||||
|
|||||||
Reference in New Issue
Block a user