mirror of
https://github.com/certbot/certbot.git
synced 2026-07-27 08:09:10 +02:00
Added important check for IPv6 address and tests, improved readability
This commit is contained in:
@@ -118,7 +118,7 @@ class Addr(object):
|
||||
port = ''
|
||||
if len(str_addr) > endIndex + 2 and str_addr[endIndex + 1] == ':':
|
||||
port = str_addr[endIndex + 2:]
|
||||
return cls((host, port), True)
|
||||
return cls((host, port), ipv6=True)
|
||||
else:
|
||||
tup = str_addr.partition(':')
|
||||
return cls((tup[0], tup[2]))
|
||||
@@ -173,6 +173,9 @@ class Addr(object):
|
||||
"""Explode IPv6 address for comparison"""
|
||||
result = ['0', '0', '0', '0', '0', '0', '0', '0']
|
||||
addr_list = addr.split(":")
|
||||
if len(addr_list) > len(result):
|
||||
# too long, truncate
|
||||
addr_list = addr_list[0:len(result)]
|
||||
append_to_end = False
|
||||
for i in range(0, len(addr_list)):
|
||||
block = addr_list[i]
|
||||
|
||||
@@ -84,6 +84,8 @@ class AddrTest(unittest.TestCase):
|
||||
self.addr4 = Addr.fromstring("[fe00::1]")
|
||||
self.addr5 = Addr.fromstring("[fe00::1]:*")
|
||||
self.addr6 = Addr.fromstring("[fe00::1]:80")
|
||||
self.addr7 = Addr.fromstring("[fe00::1]:5")
|
||||
self.addr8 = Addr.fromstring("[fe00:1:2:3:4:5:6:7:8:9]:8080")
|
||||
|
||||
def test_fromstring(self):
|
||||
self.assertEqual(self.addr1.get_addr(), "192.168.1.1")
|
||||
@@ -102,6 +104,9 @@ class AddrTest(unittest.TestCase):
|
||||
"fe00:0:0:0:0:0:0:1")
|
||||
self.assertEqual(self.addr1.get_ipv6_exploded(),
|
||||
"")
|
||||
self.assertEqual(self.addr7.get_port(), "5")
|
||||
self.assertEqual(self.addr7.get_ipv6_exploded(),
|
||||
"fe00:1:2:3:4:5:6:7")
|
||||
|
||||
def test_str(self):
|
||||
self.assertEqual(str(self.addr1), "192.168.1.1")
|
||||
|
||||
Reference in New Issue
Block a user