Ensure tinc-gui running in 64 bits mode can find tinc's 32 bit registry key.
authorDennis Joachimsthaler <dennis@efjot.de>
Fri, 17 Jan 2014 17:15:40 +0000 (18:15 +0100)
committerGuus Sliepen <guus@tinc-vpn.org>
Fri, 17 Jan 2014 17:15:40 +0000 (18:15 +0100)
gui/tinc-gui

index 64b738ebaee196076f3dea2a3633b7417fb176f1..24ca96e8f99dbceb011ac53628b042f91bc33842 100755 (executable)
@@ -234,9 +234,15 @@ class VPN:
 
        def __init__(self, netname = None, pidfile = None):
                if platform.system() == 'Windows':
+                       sam = _winreg.KEY_READ
+                       if platform.machine().endswith('64'):
+                               sam = sam | _winreg.KEY_WOW64_64KEY
                        try:
                                reg = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
-                               key = _winreg.OpenKey(reg, "SOFTWARE\\tinc")
+                               try:
+                                       key = _winreg.OpenKey(reg, "SOFTWARE\\tinc", 0, sam)
+                               except WindowsError:
+                                       key = _winreg.OpenKey(reg, "SOFTWARE\\Wow6432Node\\tinc", 0, sam)
                                VPN.confdir = _winreg.QueryValue(key, None)
                        except WindowsError:
                                pass