Support ipv6 for Checkport request

This commit is contained in:
shortcutme 2019-01-20 16:23:53 +01:00
parent 18b9df62e4
commit 1350096545
No known key found for this signature in database
GPG Key ID: 5B63BAE6CB9613AE
1 changed files with 7 additions and 2 deletions

View File

@ -425,9 +425,14 @@ class FileRequest(object):
# Check requested port of the other peer
def actionCheckport(self, params):
with closing(socket.socket(socket.AF_INET, socket.SOCK_STREAM)) as sock:
if helper.getIpType(self.connection.ip) == "ipv6":
sock_address = (self.connection.ip, params["port"], 0, 0)
else:
sock_address = (self.connection.ip, params["port"])
with closing(helper.createSocket(self.connection.ip)) as sock:
sock.settimeout(5)
if sock.connect_ex((self.connection.ip, params["port"])) == 0:
if sock.connect_ex(sock_address) == 0:
self.response({"status": "open", "ip_external": self.connection.ip})
else:
self.response({"status": "closed", "ip_external": self.connection.ip})