diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py index cbbf600f2e..606c9c650d 100755 --- a/synapse/app/homeserver.py +++ b/synapse/app/homeserver.py @@ -206,11 +206,17 @@ class SynapseHomeServer(HomeServer): """ return "%s-%s" % (resource, path_seg) - def start_listening(self, port): - reactor.listenSSL( - port, Site(self.root_resource), self.tls_context_factory - ) - logger.info("Synapse now listening on port %d", port) + def start_listening(self, secure_port, unsecure_port): + if secure_port is not None: + reactor.listenSSL( + secure_port, Site(self.root_resource), self.tls_context_factory + ) + logger.info("Synapse now listening on port %d", secure_port) + if unsecure_port is not None: + reactor.listenTCP( + unsecure_port, Site(self.root_resource) + ) + logger.info("Synapse now listening on port %d", unsecure_port) def run(): @@ -249,7 +255,7 @@ def setup(): web_client=config.webclient, redirect_root_to_web_client=True, ) - hs.start_listening(config.bind_port) + hs.start_listening(config.bind_port, config.unsecure_port) hs.get_db_pool() diff --git a/synapse/config/server.py b/synapse/config/server.py index 2c80be71b3..1f20d55d8f 100644 --- a/synapse/config/server.py +++ b/synapse/config/server.py @@ -26,6 +26,7 @@ class ServerConfig(Config): self.signing_key = self.read_signing_key(args.signing_key_path) self.bind_port = args.bind_port self.bind_host = args.bind_host + self.unsecure_port = args.unsecure_port self.daemonize = args.daemonize self.pid_file = self.abspath(args.pid_file) self.webclient = args.no_webclient @@ -39,8 +40,10 @@ class ServerConfig(Config): help="The name of the server") server_group.add_argument("--signing-key-path", help="The signing key to sign messages with") - server_group.add_argument("-p", "--bind-port", metavar="PORT", type=int, - help="TCP port to listen on") + server_group.add_argument("-p", "--bind-port", metavar="PORT", + type=int, help="https port to listen on") + server_group.add_argument("--unsecure-port", metavar="PORT", + type=int, help="http port to listen on") server_group.add_argument("--bind-host", default="", help="Local interface to listen on") server_group.add_argument("-D", "--daemonize", action='store_true',