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
|
||||
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:
|
||||
|
||||
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:
|
||||
|
||||
|
|
55
gui/tinc-gui
55
gui/tinc-gui
|
@ -96,22 +96,22 @@ class Connection:
|
|||
|
||||
class VPN:
|
||||
confdir = '/etc/tinc'
|
||||
cookiedir = '/var/run/'
|
||||
piddir = '/var/run/'
|
||||
|
||||
def connect(self):
|
||||
f = open(self.cookiefile)
|
||||
cookie = string.split(f.readline())
|
||||
f = open(self.pidfile)
|
||||
info = string.split(f.readline())
|
||||
f.close()
|
||||
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()
|
||||
s.close()
|
||||
hello = string.split(self.sf.readline())
|
||||
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()
|
||||
resp = string.split(self.sf.readline())
|
||||
self.port = cookie[1]
|
||||
self.port = info[4]
|
||||
self.nodes = {}
|
||||
self.edges = {}
|
||||
self.subnets = {}
|
||||
|
@ -203,7 +203,7 @@ class VPN:
|
|||
resp = string.split(self.sf.readline())
|
||||
return int(resp[2])
|
||||
|
||||
def __init__(self, netname = None, controlcookie = None):
|
||||
def __init__(self, netname = None, pidfile = None):
|
||||
self.tincconf = VPN.confdir + '/'
|
||||
|
||||
if netname:
|
||||
|
@ -212,33 +212,46 @@ class VPN:
|
|||
|
||||
self.tincconf += 'tinc.conf'
|
||||
|
||||
if controlcookie is not None:
|
||||
self.cookiefile = controlcookie
|
||||
if pidfile is not None:
|
||||
self.pidfile = pidfile
|
||||
else:
|
||||
self.cookiefile = VPN.cookiedir + 'tinc.'
|
||||
self.pidfile = VPN.piddir + 'tinc.'
|
||||
if netname:
|
||||
self.cookiefile += netname + '.'
|
||||
self.cookiefile += 'cookie'
|
||||
self.pidfile += netname + '.'
|
||||
self.pidfile += 'pid'
|
||||
|
||||
# GUI starts here
|
||||
|
||||
argv0 = sys.argv[0]
|
||||
del sys.argv[0]
|
||||
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'):
|
||||
net = sys.argv[1]
|
||||
elif sys.argv[0] in ('--controlcookie'):
|
||||
controlcookie = sys.argv[1]
|
||||
del sys.argv[0]
|
||||
net = sys.argv[0]
|
||||
elif sys.argv[0] in ('--pidfile'):
|
||||
del sys.argv[0]
|
||||
pidfile = sys.argv[0]
|
||||
elif sys.argv[0] in ('--help'):
|
||||
usage(0)
|
||||
else:
|
||||
print('Unknown option ' + sys.argv[0])
|
||||
sys.exit(1)
|
||||
print(argv0 + ': unrecognized option \'' + sys.argv[0] + '\'')
|
||||
usage(1)
|
||||
|
||||
del sys.argv[0]
|
||||
del sys.argv[0]
|
||||
|
||||
vpn = VPN(net, controlcookie)
|
||||
vpn = VPN(net, pidfile)
|
||||
vpn.connect()
|
||||
|
||||
class SuperListCtrl(wx.ListCtrl, ColumnSorterMixin, ListCtrlAutoWidthMixin):
|
||||
|
|
Loading…
Reference in a new issue