Use pidfile in tinc-gui as well.
This commit is contained in:
parent
660f530a6f
commit
27e6a89b15
2 changed files with 36 additions and 23 deletions
|
@ -5,10 +5,10 @@ tincctl, you can start the gui:
|
||||||
tincd -n vpn
|
tincd -n vpn
|
||||||
tinc-gui -n vpn
|
tinc-gui -n vpn
|
||||||
|
|
||||||
If the GUI cannot find the controlcookie (for example if it is not in
|
If the GUI cannot find the pid file (for example if it is not in
|
||||||
/var/run), you can specify its location manually:
|
/var/run), you can specify its location manually:
|
||||||
|
|
||||||
tinc-gui --controlcookie /usr/local/var/run/tinc.vpn.cookie
|
tinc-gui --pidfile /usr/local/var/run/tinc.vpn.pid
|
||||||
|
|
||||||
The following things sort of work:
|
The following things sort of work:
|
||||||
|
|
||||||
|
|
55
gui/tinc-gui
55
gui/tinc-gui
|
@ -96,22 +96,22 @@ class Connection:
|
||||||
|
|
||||||
class VPN:
|
class VPN:
|
||||||
confdir = '/etc/tinc'
|
confdir = '/etc/tinc'
|
||||||
cookiedir = '/var/run/'
|
piddir = '/var/run/'
|
||||||
|
|
||||||
def connect(self):
|
def connect(self):
|
||||||
f = open(self.cookiefile)
|
f = open(self.pidfile)
|
||||||
cookie = string.split(f.readline())
|
info = string.split(f.readline())
|
||||||
f.close()
|
f.close()
|
||||||
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||||
s.connect(('127.0.0.1', int(cookie[1])))
|
s.connect((info[2], int(info[4])))
|
||||||
self.sf = s.makefile()
|
self.sf = s.makefile()
|
||||||
s.close()
|
s.close()
|
||||||
hello = string.split(self.sf.readline())
|
hello = string.split(self.sf.readline())
|
||||||
self.name = hello[1]
|
self.name = hello[1]
|
||||||
self.sf.write('0 ^' + cookie[0] + ' 17\r\n')
|
self.sf.write('0 ^' + info[1] + ' 17\r\n')
|
||||||
self.sf.flush()
|
self.sf.flush()
|
||||||
resp = string.split(self.sf.readline())
|
resp = string.split(self.sf.readline())
|
||||||
self.port = cookie[1]
|
self.port = info[4]
|
||||||
self.nodes = {}
|
self.nodes = {}
|
||||||
self.edges = {}
|
self.edges = {}
|
||||||
self.subnets = {}
|
self.subnets = {}
|
||||||
|
@ -203,7 +203,7 @@ class VPN:
|
||||||
resp = string.split(self.sf.readline())
|
resp = string.split(self.sf.readline())
|
||||||
return int(resp[2])
|
return int(resp[2])
|
||||||
|
|
||||||
def __init__(self, netname = None, controlcookie = None):
|
def __init__(self, netname = None, pidfile = None):
|
||||||
self.tincconf = VPN.confdir + '/'
|
self.tincconf = VPN.confdir + '/'
|
||||||
|
|
||||||
if netname:
|
if netname:
|
||||||
|
@ -212,33 +212,46 @@ class VPN:
|
||||||
|
|
||||||
self.tincconf += 'tinc.conf'
|
self.tincconf += 'tinc.conf'
|
||||||
|
|
||||||
if controlcookie is not None:
|
if pidfile is not None:
|
||||||
self.cookiefile = controlcookie
|
self.pidfile = pidfile
|
||||||
else:
|
else:
|
||||||
self.cookiefile = VPN.cookiedir + 'tinc.'
|
self.pidfile = VPN.piddir + 'tinc.'
|
||||||
if netname:
|
if netname:
|
||||||
self.cookiefile += netname + '.'
|
self.pidfile += netname + '.'
|
||||||
self.cookiefile += 'cookie'
|
self.pidfile += 'pid'
|
||||||
|
|
||||||
# GUI starts here
|
# GUI starts here
|
||||||
|
|
||||||
|
argv0 = sys.argv[0]
|
||||||
del sys.argv[0]
|
del sys.argv[0]
|
||||||
net = None
|
net = None
|
||||||
controlcookie = None
|
pidfile = None
|
||||||
|
|
||||||
while len(sys.argv) >= 2:
|
def usage(exitcode = 0):
|
||||||
|
print('Usage: ' + argv0 + ' [options]')
|
||||||
|
print('\nValid options are:')
|
||||||
|
print(' -n, --net=NETNAME Connect to net NETNAME.')
|
||||||
|
print(' --pidfile=FILENAME Read control cookie from FILENAME.')
|
||||||
|
print(' --help Display this help and exit.')
|
||||||
|
print('\nReport bugs to tinc@tinc-vpn.org.')
|
||||||
|
sys.exit(exitcode)
|
||||||
|
|
||||||
|
while len(sys.argv):
|
||||||
if sys.argv[0] in ('-n', '--net'):
|
if sys.argv[0] in ('-n', '--net'):
|
||||||
net = sys.argv[1]
|
del sys.argv[0]
|
||||||
elif sys.argv[0] in ('--controlcookie'):
|
net = sys.argv[0]
|
||||||
controlcookie = sys.argv[1]
|
elif sys.argv[0] in ('--pidfile'):
|
||||||
|
del sys.argv[0]
|
||||||
|
pidfile = sys.argv[0]
|
||||||
|
elif sys.argv[0] in ('--help'):
|
||||||
|
usage(0)
|
||||||
else:
|
else:
|
||||||
print('Unknown option ' + sys.argv[0])
|
print(argv0 + ': unrecognized option \'' + sys.argv[0] + '\'')
|
||||||
sys.exit(1)
|
usage(1)
|
||||||
|
|
||||||
del sys.argv[0]
|
del sys.argv[0]
|
||||||
del sys.argv[0]
|
|
||||||
|
|
||||||
vpn = VPN(net, controlcookie)
|
vpn = VPN(net, pidfile)
|
||||||
vpn.connect()
|
vpn.connect()
|
||||||
|
|
||||||
class SuperListCtrl(wx.ListCtrl, ColumnSorterMixin, ListCtrlAutoWidthMixin):
|
class SuperListCtrl(wx.ListCtrl, ColumnSorterMixin, ListCtrlAutoWidthMixin):
|
||||||
|
|
Loading…
Reference in a new issue