Browse Source

show CIDR error more friendly

master
clowwindy 10 years ago
parent
commit
453a9c61a6
  1. 4
      shadowsocks/common.py
  2. 8
      shadowsocks/utils.py

4
shadowsocks/common.py

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

8
shadowsocks/utils.py

@ -193,8 +193,12 @@ def get_config(is_local):
sys.exit(2) sys.exit(2)
else: else:
config['server'] = config.get('server', '0.0.0.0') config['server'] = config.get('server', '0.0.0.0')
config['forbidden_ip'] = \ try:
IPNetwork(config.get('forbidden_ip', '127.0.0.0/8,::1/128')) 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) config['server_port'] = config.get('server_port', 8388)
if is_local and not config.get('password', None): if is_local and not config.get('password', None):

Loading…
Cancel
Save