From: Guus Sliepen Date: Thu, 7 Feb 2013 14:27:16 +0000 (+0100) Subject: Let the GUI use UNIX sockets if available. X-Git-Tag: release-1.1pre6~5 X-Git-Url: https://git.tinc-vpn.org/git/browse?a=commitdiff_plain;h=26eca516508829c3f9d8f2549335f613b569e8f5;p=tinc Let the GUI use UNIX sockets if available. --- diff --git a/gui/tinc-gui b/gui/tinc-gui index 9c6485f8..2b4f9034 100755 --- a/gui/tinc-gui +++ b/gui/tinc-gui @@ -111,11 +111,28 @@ class VPN: piddir = '/var/run/' def connect(self): + # read the pidfile f = open(self.pidfile) info = string.split(f.readline()) f.close() - s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) - s.connect((info[2], int(info[4]))) + + # check if there is a UNIX socket as well + if self.pidfile.endswith(".pid"): + unixfile = self.pidfile.replace(".pid", ".socket"); + else: + unixfile = self.pidfile + ".socket"; + + if os.path.exists(unixfile): + # use it if it exists + print(unixfile + " exists!"); + s = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) + s.connect(unixfile) + else: + # otherwise connect via TCP + print(unixfile + " does not exist."); + s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) + s.connect((info[2], int(info[4]))) + self.sf = s.makefile() s.close() hello = string.split(self.sf.readline())