daphne/daphne/endpoints.py

28 lines
912 B
Python
Raw Normal View History

2017-11-29 10:42:35 +03:00
def build_endpoint_description_strings(
host=None,
port=None,
unix_socket=None,
file_descriptor=None
2017-11-29 10:42:35 +03:00
):
"""
Build a list of twisted endpoint description strings that the server will listen on.
This is to streamline the generation of twisted endpoint description strings from easier
to use command line args such as host, port, unix sockets etc.
"""
socket_descriptions = []
if host and port is not None:
2017-11-26 00:40:15 +03:00
host = host.strip("[]").replace(":", "\:")
socket_descriptions.append("tcp:port=%d:interface=%s" % (int(port), host))
elif any([host, port]):
2017-11-26 00:40:15 +03:00
raise ValueError("TCP binding requires both port and host kwargs.")
if unix_socket:
2017-11-26 00:40:15 +03:00
socket_descriptions.append("unix:%s" % unix_socket)
if file_descriptor is not None:
2017-11-26 00:40:15 +03:00
socket_descriptions.append("fd:fileno=%d" % int(file_descriptor))
return socket_descriptions