diff options
author | Richard van der Hoff <richard@matrix.org> | 2018-07-04 18:15:03 +0100 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2018-07-04 18:59:51 +0100 |
commit | 546bc9e28b3d7758c732df8e120639d58d455164 (patch) | |
tree | 82be7e3ca557fc0997438f0fec1d644862f3dd07 /synapse/config | |
parent | Merge pull request #3473 from matrix-org/erikj/thread_cache (diff) | |
download | synapse-546bc9e28b3d7758c732df8e120639d58d455164.tar.xz |
More server_name validation
We need to do a bit more validation when we get a server name, but don't want to be re-doing it all over the shop, so factor out a separate parse_and_validate_server_name, and do the extra validation. Also, use it to verify the server name in the config file.
Diffstat (limited to 'synapse/config')
-rw-r--r-- | synapse/config/server.py | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/synapse/config/server.py b/synapse/config/server.py index 968ecd9ea0..71fd51e4bc 100644 --- a/synapse/config/server.py +++ b/synapse/config/server.py @@ -16,6 +16,7 @@ import logging +from synapse.http.endpoint import parse_and_validate_server_name from ._base import Config, ConfigError logger = logging.Logger(__name__) @@ -25,6 +26,12 @@ class ServerConfig(Config): def read_config(self, config): self.server_name = config["server_name"] + + try: + parse_and_validate_server_name(self.server_name) + except ValueError as e: + raise ConfigError(str(e)) + self.pid_file = self.abspath(config.get("pid_file")) self.web_client = config["web_client"] self.web_client_location = config.get("web_client_location", None) @@ -162,8 +169,8 @@ class ServerConfig(Config): }) def default_config(self, server_name, **kwargs): - if ":" in server_name: - bind_port = int(server_name.split(":")[1]) + _, bind_port = parse_and_validate_server_name(server_name) + if bind_port is not None: unsecure_port = bind_port - 400 else: bind_port = 8448 |