diff --git a/config/rcond-rpi-ap.yaml b/config/rcond-rpi-ap.yaml index 7aa7bf4..755ec8a 100644 --- a/config/rcond-rpi-ap.yaml +++ b/config/rcond-rpi-ap.yaml @@ -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 diff --git a/config/rcond-rpi-sta.yaml b/config/rcond-rpi-sta.yaml index dc17202..306817f 100644 --- a/config/rcond-rpi-sta.yaml +++ b/config/rcond-rpi-sta.yaml @@ -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 diff --git a/pkg/network/network.go b/pkg/network/network.go index 75227cb..d0c4c06 100644 --- a/pkg/network/network.go +++ b/pkg/network/network.go @@ -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).