show CIDR error more friendly

This commit is contained in:
clowwindy 2015-02-01 09:09:35 +08:00
parent 54181ef821
commit 453a9c61a6
2 changed files with 8 additions and 4 deletions

View file

@ -206,7 +206,7 @@ class IPNetwork(object):
hi, lo = struct.unpack("!QQ", inet_pton(addr_family, block[0]))
ip = (hi << 64) | lo
else:
raise SyntaxError("Not a valid CIDR notation: %s" % addr)
raise Exception("Not a valid CIDR notation: %s" % addr)
if len(block) is 1:
prefix_size = 0
while (ip & 1) == 0 and ip is not 0:
@ -218,7 +218,7 @@ class IPNetwork(object):
prefix_size = addr_len - int(block[1])
ip >>= prefix_size
else:
raise SyntaxError("Not a valid CIDR notation: %s" % addr)
raise Exception("Not a valid CIDR notation: %s" % addr)
if addr_family is socket.AF_INET:
self._network_list_v4.append((ip, prefix_size))
else:

View file

@ -193,8 +193,12 @@ def get_config(is_local):
sys.exit(2)
else:
config['server'] = config.get('server', '0.0.0.0')
config['forbidden_ip'] = \
IPNetwork(config.get('forbidden_ip', '127.0.0.0/8,::1/128'))
try:
config['forbidden_ip'] = \
IPNetwork(config.get('forbidden_ip', '127.0.0.0/8,::1/128'))
except Exception as e:
logging.error(e)
sys.exit(2)
config['server_port'] = config.get('server_port', 8388)
if is_local and not config.get('password', None):