summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--changes/return_smtp_port2
-rw-r--r--src/leap/mail/smtp/__init__.py8
2 files changed, 6 insertions, 4 deletions
diff --git a/changes/return_smtp_port b/changes/return_smtp_port
new file mode 100644
index 0000000..1cf58ef
--- /dev/null
+++ b/changes/return_smtp_port
@@ -0,0 +1,2 @@
+ o Return Twisted's smtp Port object to be able to stop listening to
+ it whenever we want. Related to #3873. \ No newline at end of file
diff --git a/src/leap/mail/smtp/__init__.py b/src/leap/mail/smtp/__init__.py
index 2a4abc5..4e5d2a0 100644
--- a/src/leap/mail/smtp/__init__.py
+++ b/src/leap/mail/smtp/__init__.py
@@ -54,7 +54,7 @@ def setup_smtp_relay(port, keymanager, smtp_host, smtp_port,
or not.
:type encrypted_only: bool
- :returns: SMTPFactory
+ :returns: tuple of SMTPFactory, twisted.internet.tcp.Port
"""
# The configuration for the SMTP relay is a dict with the following
# format:
@@ -77,10 +77,10 @@ def setup_smtp_relay(port, keymanager, smtp_host, smtp_port,
# configure the use of this service with twistd
factory = SMTPFactory(keymanager, config)
try:
- reactor.listenTCP(port, factory,
- interface="localhost")
+ tport = reactor.listenTCP(port, factory,
+ interface="localhost")
signal(proto.SMTP_SERVICE_STARTED, str(smtp_port))
- return factory
+ return factory, tport
except CannotListenError:
logger.error("STMP Service failed to start: "
"cannot listen in port %s" % (