diff --git a/synapse/app/appservice.py b/synapse/app/appservice.py
index c1379fdd7d..1900930053 100644
--- a/synapse/app/appservice.py
+++ b/synapse/app/appservice.py
@@ -76,8 +76,7 @@ class AppserviceServer(HomeServer):
def _listen_http(self, listener_config):
port = listener_config["port"]
- bind_address = listener_config.get("bind_address", None)
- bind_addresses = listener_config.get("bind_addresses", [])
+ bind_addresses = listener_config["bind_addresses"]
site_tag = listener_config.get("tag", port)
resources = {}
for res in listener_config["resources"]:
@@ -87,9 +86,6 @@ class AppserviceServer(HomeServer):
root_resource = create_resource_tree(resources, Resource())
- if bind_address is not None:
- bind_addresses.append(bind_address)
-
for address in bind_addresses:
reactor.listenTCP(
port,
@@ -109,11 +105,7 @@ class AppserviceServer(HomeServer):
if listener["type"] == "http":
self._listen_http(listener)
elif listener["type"] == "manhole":
- bind_address = listener.get("bind_address", None)
- bind_addresses = listener.get("bind_addresses", [])
-
- if bind_address is not None:
- bind_addresses.append(bind_address)
+ bind_addresses = listener["bind_addresses"]
for address in bind_addresses:
reactor.listenTCP(
diff --git a/synapse/app/client_reader.py b/synapse/app/client_reader.py
index b5e1d659e6..4d081eccd1 100644
--- a/synapse/app/client_reader.py
+++ b/synapse/app/client_reader.py
@@ -90,8 +90,7 @@ class ClientReaderServer(HomeServer):
def _listen_http(self, listener_config):
port = listener_config["port"]
- bind_address = listener_config.get("bind_address", None)
- bind_addresses = listener_config.get("bind_addresses", [])
+ bind_addresses = listener_config["bind_addresses"]
site_tag = listener_config.get("tag", port)
resources = {}
for res in listener_config["resources"]:
@@ -110,9 +109,6 @@ class ClientReaderServer(HomeServer):
root_resource = create_resource_tree(resources, Resource())
- if bind_address is not None:
- bind_addresses.append(bind_address)
-
for address in bind_addresses:
reactor.listenTCP(
port,
@@ -132,11 +128,7 @@ class ClientReaderServer(HomeServer):
if listener["type"] == "http":
self._listen_http(listener)
elif listener["type"] == "manhole":
- bind_address = listener.get("bind_address", None)
- bind_addresses = listener.get("bind_addresses", [])
-
- if bind_address is not None:
- bind_addresses.append(bind_address)
+ bind_addresses = listener["bind_addresses"]
for address in bind_addresses:
reactor.listenTCP(
diff --git a/synapse/app/federation_reader.py b/synapse/app/federation_reader.py
index c6810b83db..90a4816753 100644
--- a/synapse/app/federation_reader.py
+++ b/synapse/app/federation_reader.py
@@ -86,8 +86,7 @@ class FederationReaderServer(HomeServer):
def _listen_http(self, listener_config):
port = listener_config["port"]
- bind_address = listener_config.get("bind_address", None)
- bind_addresses = listener_config.get("bind_addresses", [])
+ bind_addresses = listener_config["bind_addresses"]
site_tag = listener_config.get("tag", port)
resources = {}
for res in listener_config["resources"]:
@@ -101,9 +100,6 @@ class FederationReaderServer(HomeServer):
root_resource = create_resource_tree(resources, Resource())
- if bind_address is not None:
- bind_addresses.append(bind_address)
-
for address in bind_addresses:
reactor.listenTCP(
port,
@@ -123,11 +119,7 @@ class FederationReaderServer(HomeServer):
if listener["type"] == "http":
self._listen_http(listener)
elif listener["type"] == "manhole":
- bind_address = listener.get("bind_address", None)
- bind_addresses = listener.get("bind_addresses", [])
-
- if bind_address is not None:
- bind_addresses.append(bind_address)
+ bind_addresses = listener["bind_addresses"]
for address in bind_addresses:
reactor.listenTCP(
diff --git a/synapse/app/federation_sender.py b/synapse/app/federation_sender.py
index 23aae8a09c..ec06620efb 100644
--- a/synapse/app/federation_sender.py
+++ b/synapse/app/federation_sender.py
@@ -82,8 +82,7 @@ class FederationSenderServer(HomeServer):
def _listen_http(self, listener_config):
port = listener_config["port"]
- bind_address = listener_config.get("bind_address", None)
- bind_addresses = listener_config.get("bind_addresses", [])
+ bind_addresses = listener_config["bind_addresses"]
site_tag = listener_config.get("tag", port)
resources = {}
for res in listener_config["resources"]:
@@ -93,9 +92,6 @@ class FederationSenderServer(HomeServer):
root_resource = create_resource_tree(resources, Resource())
- if bind_address is not None:
- bind_addresses.append(bind_address)
-
for address in bind_addresses:
reactor.listenTCP(
port,
@@ -115,11 +111,7 @@ class FederationSenderServer(HomeServer):
if listener["type"] == "http":
self._listen_http(listener)
elif listener["type"] == "manhole":
- bind_address = listener.get("bind_address", None)
- bind_addresses = listener.get("bind_addresses", [])
-
- if bind_address is not None:
- bind_addresses.append(bind_address)
+ bind_addresses = listener["bind_addresses"]
for address in bind_addresses:
reactor.listenTCP(
diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py
index 6c69ccd7e2..e0b87468fe 100755
--- a/synapse/app/homeserver.py
+++ b/synapse/app/homeserver.py
@@ -107,8 +107,7 @@ def build_resource_for_web_client(hs):
class SynapseHomeServer(HomeServer):
def _listener_http(self, config, listener_config):
port = listener_config["port"]
- bind_address = listener_config.get("bind_address", None)
- bind_addresses = listener_config.get("bind_addresses", [])
+ bind_addresses = listener_config["bind_addresses"]
tls = listener_config.get("tls", False)
site_tag = listener_config.get("tag", port)
@@ -175,9 +174,6 @@ class SynapseHomeServer(HomeServer):
root_resource = create_resource_tree(resources, root_resource)
- if bind_address is not None:
- bind_addresses.append(bind_address)
-
if tls:
for address in bind_addresses:
reactor.listenSSL(
@@ -212,11 +208,7 @@ class SynapseHomeServer(HomeServer):
if listener["type"] == "http":
self._listener_http(config, listener)
elif listener["type"] == "manhole":
- bind_address = listener.get("bind_address", None)
- bind_addresses = listener.get("bind_addresses", [])
-
- if bind_address is not None:
- bind_addresses.append(bind_address)
+ bind_addresses = listener["bind_addresses"]
for address in bind_addresses:
reactor.listenTCP(
diff --git a/synapse/app/media_repository.py b/synapse/app/media_repository.py
index a47283e520..ef17b158a5 100644
--- a/synapse/app/media_repository.py
+++ b/synapse/app/media_repository.py
@@ -87,8 +87,7 @@ class MediaRepositoryServer(HomeServer):
def _listen_http(self, listener_config):
port = listener_config["port"]
- bind_address = listener_config.get("bind_address", None)
- bind_addresses = listener_config.get("bind_addresses", [])
+ bind_addresses = listener_config["bind_addresses"]
site_tag = listener_config.get("tag", port)
resources = {}
for res in listener_config["resources"]:
@@ -107,9 +106,6 @@ class MediaRepositoryServer(HomeServer):
root_resource = create_resource_tree(resources, Resource())
- if bind_address is not None:
- bind_addresses.append(bind_address)
-
for address in bind_addresses:
reactor.listenTCP(
port,
@@ -129,11 +125,7 @@ class MediaRepositoryServer(HomeServer):
if listener["type"] == "http":
self._listen_http(listener)
elif listener["type"] == "manhole":
- bind_address = listener.get("bind_address", None)
- bind_addresses = listener.get("bind_addresses", [])
-
- if bind_address is not None:
- bind_addresses.append(bind_address)
+ bind_addresses = listener["bind_addresses"]
for address in bind_addresses:
reactor.listenTCP(
diff --git a/synapse/app/pusher.py b/synapse/app/pusher.py
index 57e097fa11..073f2c2489 100644
--- a/synapse/app/pusher.py
+++ b/synapse/app/pusher.py
@@ -121,8 +121,7 @@ class PusherServer(HomeServer):
def _listen_http(self, listener_config):
port = listener_config["port"]
- bind_address = listener_config.get("bind_address", None)
- bind_addresses = listener_config.get("bind_addresses", [])
+ bind_addresses = listener_config["bind_addresses"]
site_tag = listener_config.get("tag", port)
resources = {}
for res in listener_config["resources"]:
@@ -132,9 +131,6 @@ class PusherServer(HomeServer):
root_resource = create_resource_tree(resources, Resource())
- if bind_address is not None:
- bind_addresses.append(bind_address)
-
for address in bind_addresses:
reactor.listenTCP(
port,
@@ -154,11 +150,7 @@ class PusherServer(HomeServer):
if listener["type"] == "http":
self._listen_http(listener)
elif listener["type"] == "manhole":
- bind_address = listener.get("bind_address", None)
- bind_addresses = listener.get("bind_addresses", [])
-
- if bind_address is not None:
- bind_addresses.append(bind_address)
+ bind_addresses = listener["bind_addresses"]
for address in bind_addresses:
reactor.listenTCP(
diff --git a/synapse/app/synchrotron.py b/synapse/app/synchrotron.py
index 439daaa60a..4dfc2dc648 100644
--- a/synapse/app/synchrotron.py
+++ b/synapse/app/synchrotron.py
@@ -289,8 +289,7 @@ class SynchrotronServer(HomeServer):
def _listen_http(self, listener_config):
port = listener_config["port"]
- bind_address = listener_config.get("bind_address", None)
- bind_addresses = listener_config.get("bind_addresses", [])
+ bind_addresses = listener_config["bind_addresses"]
site_tag = listener_config.get("tag", port)
resources = {}
for res in listener_config["resources"]:
@@ -312,9 +311,6 @@ class SynchrotronServer(HomeServer):
root_resource = create_resource_tree(resources, Resource())
- if bind_address is not None:
- bind_addresses.append(bind_address)
-
for address in bind_addresses:
reactor.listenTCP(
port,
@@ -334,11 +330,7 @@ class SynchrotronServer(HomeServer):
if listener["type"] == "http":
self._listen_http(listener)
elif listener["type"] == "manhole":
- bind_address = listener.get("bind_address", None)
- bind_addresses = listener.get("bind_addresses", [])
-
- if bind_address is not None:
- bind_addresses.append(bind_address)
+ bind_addresses = listener["bind_addresses"]
for address in bind_addresses:
reactor.listenTCP(
diff --git a/synapse/config/server.py b/synapse/config/server.py
index 5e6b2a68a7..59687ee395 100644
--- a/synapse/config/server.py
+++ b/synapse/config/server.py
@@ -42,6 +42,15 @@ class ServerConfig(Config):
self.listeners = config.get("listeners", [])
+ for listener in self.listeners:
+ bind_address = listener.get("bind_address", None)
+ bind_addresses = listener.setdefault("bind_addresses", [])
+
+ if bind_address:
+ bind_addresses.append(bind_address)
+ elif not bind_addresses:
+ bind_addresses.append('')
+
self.gc_thresholds = read_gc_thresholds(config.get("gc_thresholds", None))
bind_port = config.get("bind_port")
@@ -54,7 +63,7 @@ class ServerConfig(Config):
self.listeners.append({
"port": bind_port,
- "bind_address": bind_host,
+ "bind_addresses": [bind_host],
"tls": True,
"type": "http",
"resources": [
@@ -73,7 +82,7 @@ class ServerConfig(Config):
if unsecure_port:
self.listeners.append({
"port": unsecure_port,
- "bind_address": bind_host,
+ "bind_addresses": [bind_host],
"tls": False,
"type": "http",
"resources": [
@@ -92,7 +101,7 @@ class ServerConfig(Config):
if manhole:
self.listeners.append({
"port": manhole,
- "bind_address": "127.0.0.1",
+ "bind_addresses": ["127.0.0.1"],
"type": "manhole",
})
@@ -100,7 +109,7 @@ class ServerConfig(Config):
if metrics_port:
self.listeners.append({
"port": metrics_port,
- "bind_address": config.get("metrics_bind_host", "127.0.0.1"),
+ "bind_addresses": [config.get("metrics_bind_host", "127.0.0.1")],
"tls": False,
"type": "http",
"resources": [
|