From 46e92036ec91fb7960625f136be0d73e1df71574 Mon Sep 17 00:00:00 2001 From: Pascal Vizeli Date: Wed, 11 Nov 2020 16:33:46 +0100 Subject: [PATCH] Fix handling with open or wpa-psk (#2239) --- supervisor/dbus/payloads/interface_update.tmpl | 17 +++++++---------- supervisor/host/network.py | 7 ++++--- .../payloads/test_interface_update_payload.py | 7 ++----- 3 files changed, 13 insertions(+), 18 deletions(-) diff --git a/supervisor/dbus/payloads/interface_update.tmpl b/supervisor/dbus/payloads/interface_update.tmpl index 63dbaa981..539de2ea0 100644 --- a/supervisor/dbus/payloads/interface_update.tmpl +++ b/supervisor/dbus/payloads/interface_update.tmpl @@ -76,29 +76,26 @@ , '802-11-wireless': { - 'security': <'802-11-wireless-security'>, 'assigned-mac-address': <'stable'>, 'ssid': <[byte {{ interface.wifi.ssid }}]>, 'mode': <'{{ interface.wifi.mode.value }}'>, 'powersave': - +{% if interface.wifi.auth != "open" %} + , + 'security': <'802-11-wireless-security'> }, + '802-11-wireless-security': { {% if interface.wifi.auth == "wep" %} 'auth-alg': <'none'>, - 'key-mgmt': <'none'> + 'key-mgmt': <'none'>, {% elif interface.wifi.auth == "wpa-psk" %} - 'auth-alg': <'shared'>, - 'key-mgmt': <'wpa-psk'> - {% elif interface.wifi.auth == "open" %} 'auth-alg': <'open'>, - 'key-mgmt': <'none'> + 'key-mgmt': <'wpa-psk'>, {% endif %} - {% if interface.wifi.psk %} - , 'psk': <'{{ interface.wifi.psk }}'> - {% endif %} +{% endif %} } {% endif %} } \ No newline at end of file diff --git a/supervisor/host/network.py b/supervisor/host/network.py index 4b31cfa4c..752dbc627 100644 --- a/supervisor/host/network.py +++ b/supervisor/host/network.py @@ -298,12 +298,13 @@ class Interface: return None # Authentication - if inet.settings.wireless_security.auth_alg == "none": + auth = None + if not inet.settings.wireless_security: + auth = AuthMethod.OPEN + if inet.settings.wireless_security.key_mgmt == "none": auth = AuthMethod.WEP elif inet.settings.wireless_security.key_mgmt == "wpa-psk": auth = AuthMethod.WPA_PSK - else: - auth = AuthMethod.OPEN # Signal if inet.wireless: diff --git a/tests/dbus/payloads/test_interface_update_payload.py b/tests/dbus/payloads/test_interface_update_payload.py index f4a874f6e..bfae86989 100644 --- a/tests/dbus/payloads/test_interface_update_payload.py +++ b/tests/dbus/payloads/test_interface_update_payload.py @@ -110,7 +110,7 @@ async def test_interface_update_payload_wireless_wpa_psk(coresys): assert DBus.parse_gvariant(data)["802-11-wireless"]["ssid"] == [84, 101, 115, 116] assert DBus.parse_gvariant(data)["802-11-wireless"]["mode"] == "infrastructure" - assert DBus.parse_gvariant(data)["802-11-wireless-security"]["auth-alg"] == "shared" + assert DBus.parse_gvariant(data)["802-11-wireless-security"]["auth-alg"] == "open" assert ( DBus.parse_gvariant(data)["802-11-wireless-security"]["key-mgmt"] == "wpa-psk" ) @@ -156,10 +156,7 @@ async def test_interface_update_payload_wireless_open(coresys): assert ( DBus.parse_gvariant(data)["802-11-wireless"]["assigned-mac-address"] == "stable" ) - - assert DBus.parse_gvariant(data)["802-11-wireless-security"]["auth-alg"] == "open" - assert DBus.parse_gvariant(data)["802-11-wireless-security"]["key-mgmt"] == "none" - assert "psk" not in DBus.parse_gvariant(data)["802-11-wireless-security"] + assert "802-11-wireless-security" not in DBus.parse_gvariant(data) @pytest.mark.asyncio