def listen_ip(factory, config, ip_local_default=True, ip_version_default=4):
'''
Internal implementation that opens IP listeners for factory based on
config. See listen() for details.
'''
# upgrade things to lists if they have been passed as single items
config = _listify(config)
ip_version_default = _listify(ip_version_default)
# now process the list
listeners = []
for item in config:
if not validate_connection_config(item):
# warn but skip invalid configs
continue
if 'port' in item:
port = int(item['port'])
if 'ip' in item:
ip = item['ip']
listeners.append(reactor.listenTCP(port, factory,
interface=ip))
else:
for ip_version in ip_version_default:
ip = IP_LISTEN_DEFAULT[ip_version][ip_local_default]
listeners.append(reactor.listenTCP(port, factory,
interface=ip))
return _unlistify(listeners)
评论列表
文章目录