mod_tls: Attempt STARTTLS even if not advertised as per RFC 7590
authorKim Alvefur <zash@zash.se>
Fri, 29 Jan 2021 23:17:08 +0100
changeset 11344 a7109eb45e30
parent 11343 25260c20c5a4
child 11345 c567e5e2b77a
mod_tls: Attempt STARTTLS even if not advertised as per RFC 7590
doc/doap.xml
plugins/mod_tls.lua
--- a/doc/doap.xml	Fri Jan 29 23:14:48 2021 +0100
+++ b/doc/doap.xml	Fri Jan 29 23:17:08 2021 +0100
@@ -54,6 +54,7 @@
     <implements rdf:resource="https://www.rfc-editor.org/info/rfc6455"/>
     <implements rdf:resource="https://www.rfc-editor.org/info/rfc7301"/>
     <implements rdf:resource="https://www.rfc-editor.org/info/rfc7395"/>
+    <implements rdf:resource="https://www.rfc-editor.org/info/rfc7390"/>
     <implements rdf:resource="https://datatracker.ietf.org/doc/draft-cridland-xmpp-session/">
       <!-- since=0.6.0 note=Added in hg:0bbbc9042361 -->
     </implements>
--- a/plugins/mod_tls.lua	Fri Jan 29 23:14:48 2021 +0100
+++ b/plugins/mod_tls.lua	Fri Jan 29 23:17:08 2021 +0100
@@ -150,8 +150,12 @@
 -- For s2sout connections, start TLS if we can
 module:hook_tag("http://etherx.jabber.org/streams", "features", function (session, stanza)
 	module:log("debug", "Received features element");
-	if can_do_tls(session) and stanza:get_child("starttls", xmlns_starttls) then
-		module:log("debug", "%s is offering TLS, taking up the offer...", session.to_host);
+	if can_do_tls(session) then
+		if stanza:get_child("starttls", xmlns_starttls) then
+			module:log("debug", "%s is offering TLS, taking up the offer...", session.to_host);
+		else
+			module:log("debug", "%s is *not* offering TLS, trying anyways!", session.to_host);
+		end
 		session.sends2s(starttls_initiate);
 		return true;
 	end