Compare commits

...

1 Commits

View File

@ -657,10 +657,9 @@ class StartupMixin(metaclass=SanicMeta):
def get_server_location( def get_server_location(
server_settings: Optional[Dict[str, Any]] = None server_settings: Optional[Dict[str, Any]] = None
) -> str: ) -> str:
serve_location = ""
proto = "http" proto = "http"
if not server_settings: if not server_settings:
return serve_location return ""
host = server_settings["host"] host = server_settings["host"]
port = server_settings["port"] port = server_settings["port"]
@ -668,16 +667,33 @@ class StartupMixin(metaclass=SanicMeta):
if server_settings.get("ssl") is not None: if server_settings.get("ssl") is not None:
proto = "https" proto = "https"
if server_settings.get("unix"): if server_settings.get("unix"):
serve_location = f'{server_settings["unix"]} {proto}://...' return f'{server_settings["unix"]} {proto}://localhost'
elif server_settings.get("sock"): if server_settings.get("sock"):
host, port, *_ = server_settings["sock"].getsockname() host, port, *_ = server_settings["sock"].getsockname()
if not host or not port:
return ""
if not serve_location and host and port: # colon(:) is legal for a host only in an ipv6 address
# colon(:) is legal for a host only in an ipv6 address url_host = f"[{host}]" if ":" in host else host
display_host = f"[{host}]" if ":" in host else host url_port = (
serve_location = f"{proto}://{display_host}:{port}" ""
if (
(proto == "https" and port == 443)
or (proto == "http" and port == 80)
)
else f":{port}"
)
return serve_location special = {
"127.0.0.1": "IPv4",
"0.0.0.0": "IPv4 wildcard",
"::1": "IPv6",
"::": "IPv6 wildcard",
}.get(host, "")
if special:
return f"({special}) {proto}://localhost{url_port}"
return f"{proto}://{url_host}{url_port}"
@staticmethod @staticmethod
def get_address( def get_address(