# HG changeset patch # User Dennis Fink # Date 2015-08-30 15:32:48 # Node ID 2cef966f277b5622cd8abe12efb7673e3df8ee2a # Parent d1494001db7c128da113e885564d3e49c4be10c3 Added new check_ip function diff --git a/ennstatus/api/model.py b/ennstatus/api/model.py --- a/ennstatus/api/model.py +++ b/ennstatus/api/model.py @@ -13,6 +13,9 @@ import requests from flask import current_app from pkg_resources import resource_filename +from ..utils import check_ip + + schema = json.load( open( resource_filename('ennstatus.api', 'schema/server.json'), @@ -179,12 +182,8 @@ class Server: for key in ('ip', 'ip6'): if key in server: address = ipaddress.ip_address(server[key]) - - if any({address.is_private, address.is_multicast, - address.is_unspecified, address.is_reserved, - address.is_loopback}): + if not check_ip(address): raise ValueError('{} is not accepted!\n'.format(key)) - return True def save(self): diff --git a/ennstatus/utils.py b/ennstatus/utils.py new file mode 100644 --- /dev/null +++ b/ennstatus/utils.py @@ -0,0 +1,9 @@ + +def check_ip(ipaddress): + return not any({ + ipaddress.is_private, + ipaddress.is_multicast, + ipaddress.is_unspecified, + ipaddress.is_reserved, + ipaddress.is_loopback + })