diff --git a/synapse/config/emailconfig.py b/synapse/config/emailconfig.py
index a187161272..0030b5db1e 100644
--- a/synapse/config/emailconfig.py
+++ b/synapse/config/emailconfig.py
@@ -68,6 +68,9 @@ class EmailConfig(Config):
self.email_notif_for_new_users = email_config.get(
"notif_for_new_users", True
)
+ self.email_riot_base_url = email_config.get(
+ "riot_base_url", None
+ )
if "app_name" in email_config:
self.email_app_name = email_config["app_name"]
else:
@@ -85,6 +88,9 @@ class EmailConfig(Config):
def default_config(self, config_dir_path, server_name, **kwargs):
return """
# Enable sending emails for notification events
+ # Defining a custom URL for Riot is only needed if email notifications
+ # should contain links to a self-hosted installation of Riot; when set
+ # the "app_name" setting is ignored.
#email:
# enable_notifs: false
# smtp_host: "localhost"
@@ -95,4 +101,5 @@ class EmailConfig(Config):
# notif_template_html: notif_mail.html
# notif_template_text: notif_mail.txt
# notif_for_new_users: True
+ # riot_base_url: "http://localhost/riot"
"""
diff --git a/synapse/config/logger.py b/synapse/config/logger.py
index 63e69a7e0c..77ded0ad25 100644
--- a/synapse/config/logger.py
+++ b/synapse/config/logger.py
@@ -22,7 +22,6 @@ import yaml
from string import Template
import os
import signal
-from synapse.util.debug import debug_deferreds
DEFAULT_LOG_CONFIG = Template("""
@@ -71,8 +70,6 @@ class LoggingConfig(Config):
self.verbosity = config.get("verbose", 0)
self.log_config = self.abspath(config.get("log_config"))
self.log_file = self.abspath(config.get("log_file"))
- if config.get("full_twisted_stacktraces"):
- debug_deferreds()
def default_config(self, config_dir_path, server_name, **kwargs):
log_file = self.abspath("homeserver.log")
@@ -88,11 +85,6 @@ class LoggingConfig(Config):
# A yaml python logging config file
log_config: "%(log_config)s"
-
- # Stop twisted from discarding the stack traces of exceptions in
- # deferreds by waiting a reactor tick before running a deferred's
- # callbacks.
- # full_twisted_stacktraces: true
""" % locals()
def read_arguments(self, args):
diff --git a/synapse/config/server.py b/synapse/config/server.py
index 634d8e6fe5..1f9999d57a 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.pop("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": [
@@ -155,9 +164,14 @@ class ServerConfig(Config):
# The port to listen for HTTPS requests on.
port: %(bind_port)s
- # Local interface to listen on.
- # The empty string will cause synapse to listen on all interfaces.
- bind_address: ''
+ # Local addresses to listen on.
+ # This will listen on all IPv4 addresses by default.
+ bind_addresses:
+ - '0.0.0.0'
+ # Uncomment to listen on all IPv6 interfaces
+ # N.B: On at least Linux this will also listen on all IPv4
+ # addresses, so you will need to comment out the line above.
+ # - '::'
# This is a 'http' listener, allows us to specify 'resources'.
type: http
@@ -188,7 +202,7 @@ class ServerConfig(Config):
# For when matrix traffic passes through loadbalancer that unwraps TLS.
- port: %(unsecure_port)s
tls: false
- bind_address: ''
+ bind_addresses: ['0.0.0.0']
type: http
x_forwarded: false
diff --git a/synapse/config/voip.py b/synapse/config/voip.py
index 169980f60d..eeb693027b 100644
--- a/synapse/config/voip.py
+++ b/synapse/config/voip.py
@@ -19,7 +19,9 @@ class VoipConfig(Config):
def read_config(self, config):
self.turn_uris = config.get("turn_uris", [])
- self.turn_shared_secret = config["turn_shared_secret"]
+ self.turn_shared_secret = config.get("turn_shared_secret")
+ self.turn_username = config.get("turn_username")
+ self.turn_password = config.get("turn_password")
self.turn_user_lifetime = self.parse_duration(config["turn_user_lifetime"])
def default_config(self, **kwargs):
@@ -32,6 +34,11 @@ class VoipConfig(Config):
# The shared secret used to compute passwords for the TURN server
turn_shared_secret: "YOUR_SHARED_SECRET"
+ # The Username and password if the TURN server needs them and
+ # does not use a token
+ #turn_username: "TURNSERVER_USERNAME"
+ #turn_password: "TURNSERVER_PASSWORD"
+
# How long generated TURN credentials last
turn_user_lifetime: "1h"
"""
diff --git a/synapse/config/workers.py b/synapse/config/workers.py
index 904789d155..b165c67ee7 100644
--- a/synapse/config/workers.py
+++ b/synapse/config/workers.py
@@ -29,3 +29,13 @@ class WorkerConfig(Config):
self.worker_log_file = config.get("worker_log_file")
self.worker_log_config = config.get("worker_log_config")
self.worker_replication_url = config.get("worker_replication_url")
+
+ if self.worker_listeners:
+ for listener in self.worker_listeners:
+ bind_address = listener.pop("bind_address", None)
+ bind_addresses = listener.setdefault("bind_addresses", [])
+
+ if bind_address:
+ bind_addresses.append(bind_address)
+ elif not bind_addresses:
+ bind_addresses.append('')
|