Skip to content
This repository was archived by the owner on Jul 2, 2020. It is now read-only.

Commit a27ed6f

Browse files
committed
Exception handling for invalid IP addresses
If there are invalid IP addresses in the registry, provides an error message to that effect.
1 parent 6c70002 commit a27ed6f

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

recover-ipv4-space

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,8 @@ class IPv4Range(object):
8282
self.end = IPv4Address(end)
8383
elif cidr:
8484
self.load_cidr(cidr)
85+
else:
86+
raise ValueError, "Missing IP range value"
8587

8688
self.preference = None
8789

@@ -210,7 +212,10 @@ class RecoveredAddressRegistry(object):
210212
whois = record.find(self.ns('whois')).text
211213
except AttributeError:
212214
continue
213-
block = IPv4Range(cidr=prefix)
215+
try:
216+
block = IPv4Range(cidr=prefix)
217+
except:
218+
raise ValueError, "Illegal value in allocated address registry \"{}\"".format(etree.tostring(record))
214219
block.preference = config['whois_map'].get(whois)
215220
self.preferred_blocks.append(block)
216221

@@ -226,8 +231,10 @@ class RecoveredAddressRegistry(object):
226231
allocatee = record.find(self.ns('returned')).text
227232
record_date = record.find(self.ns('date')).text
228233
status = record.find(self.ns('status')).text
229-
230-
my_block = IPv4Range(start, end)
234+
try:
235+
my_block = IPv4Range(start, end)
236+
except:
237+
raise ValueError, "Illegal value in recovered address registry \"{}\"".format(etree.tostring(record))
231238

232239
preference = None
233240
for preferred_block in self.preferred_blocks:
@@ -245,7 +252,10 @@ class RecoveredAddressRegistry(object):
245252
self.ns('record'))):
246253
start = record.find(self.ns('start')).text
247254
end = record.find(self.ns('end')).text
248-
block = IPv4Range(start, end)
255+
try:
256+
block = IPv4Range(start, end)
257+
except:
258+
raise ValueError, "Illegal value in recovered address registry \"{}\"".format(etree.tostring(record))
249259
block.allocatee = record.find(self.ns('designation')).text
250260
block.record_date = record.find(self.ns('date')).text
251261
block.whois = record.find(self.ns('whois')).text

0 commit comments

Comments
 (0)