diff options
author | Jeff Lane <jeffrey.lane@canonical.com> | 2017-02-23 16:06:47 -0500 |
---|---|---|
committer | Sylvain Pineau <sylvain.pineau@canonical.com> | 2017-04-03 09:39:22 +0200 |
commit | 50d1e306dc4d63c7a7f15832cd00fe789f050946 (patch) | |
tree | 0a5d44fa3ac651a41f496c8e2a513bc7a6954a73 | |
parent | 95fe2f4b34dd64fd92c1da499fe85c6fa75a00cd (diff) |
bin/network: fix traceback when device to be tested has no IP address LP: #1662724
-rwxr-xr-x | bin/network | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/bin/network b/bin/network index 88fd931..8d04a67 100755 --- a/bin/network +++ b/bin/network @@ -260,7 +260,7 @@ class Interface(socket.socket): nic_data = fcntl.ioctl(self.fileno(), 0x8915, freq) except IOError: logging.error("No IP address for %s", self.interface) - return 1 + return None return socket.inet_ntoa(nic_data[20:24]) @property @@ -271,7 +271,7 @@ class Interface(socket.socket): mask_data = fcntl.ioctl(self.fileno(), 0x891b, freq) except IOError: logging.error("No netmask for %s", self.interface) - return 1 + return None return socket.inet_ntoa(mask_data[20:24]) @property @@ -433,9 +433,15 @@ def make_target_list(iface, test_targets, log_warnings): List form of input string, minus invalid values """ test_targets_list = test_targets.split(",") - net = ipaddress.IPv4Network("{}/{}".format(Interface(iface).ipaddress, - Interface(iface).netmask), - False) + try: + net = ipaddress.IPv4Network("{}/{}".format(Interface(iface).ipaddress, + Interface(iface).netmask), + False) + except ipaddress.AddressValueError as e: + logging.error("Device {}: Invalid IP Address".format(iface)) + logging.error(" {}".format(e)) + logging.error("Aborting test now") + sys.exit(1) first_addr = net.network_address + 1 last_addr = first_addr + net.num_addresses - 2 return_list = list(test_targets_list) |