]> www.vanbest.org Git - motioneye-debian/commitdiff
wifictl: add support for hex psk
authorCalin Crisan <ccrisan@gmail.com>
Sat, 5 Aug 2017 16:23:15 +0000 (19:23 +0300)
committerCalin Crisan <ccrisan@gmail.com>
Sat, 5 Aug 2017 16:23:15 +0000 (19:23 +0300)
motioneye/wifictl.py

index 7f93ed8ec19feb608c4578167fe6456a0eb3f5f2..e5b035c2a58882fa16c0f18598474c52f3ba1a7d 100644 (file)
@@ -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')