Fix parsing IPv6 addresses

Fixes https://github.com/mhinz/neovim-remote/issues/125
pull/127/head v2.3.1
Marco Hinz 5 years ago
parent f85fc410e5
commit 4ba61af62a
No known key found for this signature in database
GPG Key ID: 1C980A1B657B4A4F

@ -45,11 +45,11 @@ class Nvr():
def attach(self):
try:
if get_address_type(self.address) == 'tcp':
ip, port = self.address.split(':', 1)
self.server = pynvim.attach('tcp', address=ip, port=int(port))
socktype, address, port = parse_address(self.address)
if socktype == 'tcp':
self.server = pynvim.attach('tcp', address=address, port=int(port))
else:
self.server = pynvim.attach('socket', path=self.address)
self.server = pynvim.attach('socket', path=address)
except OSError:
# Ignore invalid addresses.
pass
@ -373,14 +373,14 @@ def print_sockaddrs():
print(addr)
def get_address_type(address):
def parse_address(address):
try:
ip, port = address.split(':', 1)
host, port = address.rsplit(':', 1)
if port.isdigit():
return 'tcp'
return 'tcp', host, port
raise ValueError
except ValueError:
return 'socket'
return 'socket', address, None
def main(argv=sys.argv, env=os.environ):

Loading…
Cancel
Save