From e895ff48ee50ff4c4e79803999b222855809c6c6 Mon Sep 17 00:00:00 2001 From: Calin Crisan Date: Sat, 5 Aug 2017 19:23:15 +0300 Subject: [PATCH] wifictl: add support for hex psk --- motioneye/wifictl.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/motioneye/wifictl.py b/motioneye/wifictl.py index 7f93ed8..e5b035c 100644 --- a/motioneye/wifictl.py +++ b/motioneye/wifictl.py @@ -65,7 +65,7 @@ def _get_wifi_settings(): if m: ssid = m.group(1) - m = re.search('psk\s*=\s*"(.*?)"', line) + m = re.search('psk\s*=\s*"?([^"]*)"?', line) if m: psk = m.group(1) @@ -99,6 +99,7 @@ def _set_wifi_settings(s): enabled = s['wifiEnabled'] ssid = s['wifiNetworkName'] psk = s['wifiNetworkKey'] + psk_is_hex = re.match('^[a-f0-9]{64}$', psk, re.I) is not None key_mgmt = None if psk else 'NONE' # will update the first configured network @@ -133,7 +134,11 @@ def _set_wifi_settings(s): if enabled and ssid and not found_ssid: lines.insert(i, ' ssid="' + ssid + '"\n') if enabled and psk and not found_psk: - lines.insert(i, ' psk="' + psk + '"\n') + if psk_is_hex: + lines.insert(i, ' psk=' + psk + '\n') + + else: + lines.insert(i, ' psk="' + psk + '"\n') if enabled and not found_key_mgmt and key_mgmt: lines.insert(i, ' key_mgmt=' + key_mgmt + '\n') @@ -147,9 +152,14 @@ def _set_wifi_settings(s): lines[i] = ' ssid="' + ssid + '"\n' found_ssid = True - elif re.match('psk\s*=\s*".*?"', line): + elif re.match('psk\s*=.*', line): if psk: - lines[i] = ' psk="' + psk + '"\n' + if psk_is_hex: + lines[i] = ' psk=' + psk + '\n' + + else: + lines[i] = ' psk="' + psk + '"\n' + found_psk = True else: @@ -171,7 +181,11 @@ def _set_wifi_settings(s): lines.append('network={\n') lines.append(' scan_ssid=1\n') lines.append(' ssid="' + ssid + '"\n') - lines.append(' psk="' + psk + '"\n') + if psk_is_hex: + lines.append(' psk=' + psk + '\n') + + else: + lines.append(' psk="' + psk + '"\n') if key_mgmt: lines.append(' key_mgmt=' + key_mgmt + '\n') lines.append('}\n\n') -- 2.39.5