summaryrefslogtreecommitdiff
path: root/sleekxmpp/features/feature_starttls
diff options
context:
space:
mode:
Diffstat (limited to 'sleekxmpp/features/feature_starttls')
-rw-r--r--sleekxmpp/features/feature_starttls/starttls.py8
1 files changed, 6 insertions, 2 deletions
diff --git a/sleekxmpp/features/feature_starttls/starttls.py b/sleekxmpp/features/feature_starttls/starttls.py
index cbb94be0..841e7a8d 100644
--- a/sleekxmpp/features/feature_starttls/starttls.py
+++ b/sleekxmpp/features/feature_starttls/starttls.py
@@ -48,7 +48,11 @@ class feature_starttls(base_plugin):
Arguments:
features -- The stream:features element.
"""
- if not self.xmpp.use_tls:
+ if 'starttls' in self.xmpp.features:
+ # We have already negotiated TLS, but the server is
+ # offering it again, against spec.
+ return False
+ elif not self.xmpp.use_tls:
return False
elif self.xmpp.ssl_support:
self.xmpp.send(features['starttls'], now=True)
@@ -62,5 +66,5 @@ class feature_starttls(base_plugin):
"""Restart the XML stream when TLS is accepted."""
log.debug("Starting TLS")
if self.xmpp.start_tls():
- self.xmpp.features.append('starttls')
+ self.xmpp.features.add('starttls')
raise RestartStream()