From d139c8f8e598e9a46e57a423d5e179dcc3b6b10c Mon Sep 17 00:00:00 2001 From: imdano <> Date: Wed, 23 Apr 2008 18:10:23 +0000 Subject: [PATCH] Fixed problems with passphrases using non-alphanumeric characters. --- networking.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/networking.py b/networking.py index b3af3dc..0c2ef97 100644 --- a/networking.py +++ b/networking.py @@ -674,6 +674,10 @@ class WirelessConnectThread(ConnectThread): process if encryption is on. """ + def _sanitize(key): + """ Escapes characters wpa_supplicant doesn't handle properly. """ + return key.replace("$", "\$").replace("`", "\`").replace("\"", + "\\\"") # Check to see if we need to generate a PSK (only for non-ralink # cards). if self.network.get('key'): @@ -685,7 +689,7 @@ class WirelessConnectThread(ConnectThread): self.network['psk'] = misc.RunRegex(key_pattern, misc.Run(''.join(['wpa_passphrase "', self.network['essid'], '" "', - re.escape(self.network['key']), '"']))) + _sanitize(self.network['key']), '"']))) # Generate the wpa_supplicant file... if self.network.get('enctype'): self.SetStatus('generating_wpa_config')