From 420447e386434d068f832f2132e323d0c583fbfe Mon Sep 17 00:00:00 2001 From: Calum Lind Date: Wed, 29 Jun 2011 21:10:49 +0100 Subject: [PATCH] Fix #1232: Improve display of Peers Tab IPv6 addresses --- deluge/ui/console/commands/info.py | 8 +++++++- deluge/ui/gtkui/peers_tab.py | 4 +++- deluge/ui/web/js/deluge-all/details/PeersTab.js | 7 ++++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/deluge/ui/console/commands/info.py b/deluge/ui/console/commands/info.py index 7e6ed99ac..8a7f6daf0 100644 --- a/deluge/ui/console/commands/info.py +++ b/deluge/ui/console/commands/info.py @@ -226,7 +226,13 @@ class Command(BaseCommand): s += "%sPeer\t{!input!}" % colors.state_color["Downloading"] s += peer["country"] + "\t" - s += peer["ip"] + + if peer["ip"].count(":") == 1: + # IPv4 + s += peer["ip"] + else: + # IPv6 + s += "[%s]:%s" % (":".join(peer["ip"].split(":")[:-1]), peer["ip"].split(":")[-1]) c = peer["client"] s += "\t" + c diff --git a/deluge/ui/gtkui/peers_tab.py b/deluge/ui/gtkui/peers_tab.py index c260a3f3f..99a85e405 100644 --- a/deluge/ui/gtkui/peers_tab.py +++ b/deluge/ui/gtkui/peers_tab.py @@ -317,6 +317,7 @@ class PeersTab(Tab): # This is an IPv4 address ip_int = sum([int(byte) << shift for byte, shift in izip(peer["ip"].split(":")[0].split("."), (24, 16, 8, 0))]) + peer_ip = peer["ip"] else: # This is an IPv6 address import socket @@ -324,6 +325,7 @@ class PeersTab(Tab): # Split out the :port ip = ":".join(peer["ip"].split(":")[:-1]) ip_int = long(binascii.hexlify(socket.inet_pton(socket.AF_INET6, ip)), 16) + peer_ip = "[%s]:%s" % (ip, peer["ip"].split(":")[-1]) if peer["seed"]: icon = self.seed_pixbuf @@ -332,7 +334,7 @@ class PeersTab(Tab): row = self.liststore.append([ self.get_flag_pixbuf(peer["country"]), - peer["ip"], + peer_ip, peer["client"], peer["down_speed"], peer["up_speed"], diff --git a/deluge/ui/web/js/deluge-all/details/PeersTab.js b/deluge/ui/web/js/deluge-all/details/PeersTab.js index 44a4daa35..bb45d6655 100644 --- a/deluge/ui/web/js/deluge-all/details/PeersTab.js +++ b/deluge/ui/web/js/deluge-all/details/PeersTab.js @@ -38,7 +38,12 @@ return String.format('', value); } function peerAddressRenderer(value, p, record) { - var seed = (record.data['seed'] == 1024) ? 'x-deluge-seed' : 'x-deluge-peer' + var seed = (record.data['seed'] == 1024) ? 'x-deluge-seed' : 'x-deluge-peer'; + if (peer_ip.length > 2) { + var port = peer_ip.pop(); + var ip = peer_ip.join(":"); + value = "[" + ip + "]:" + port; + } return String.format('
{1}
', seed, value); } function peerProgressRenderer(value) {