Software / code / prosody
Comparison
plugins/mod_tls.lua @ 1911:bfe120db1ec4
mod_tls: Mark starttls feature as <required/> if require_s2s_encryption is enabled
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Mon, 05 Oct 2009 14:52:30 +0100 |
| parent | 1910:14c043d7fb77 |
| child | 1912:126401a7159f |
comparison
equal
deleted
inserted
replaced
| 1910:14c043d7fb77 | 1911:bfe120db1ec4 |
|---|---|
| 10 | 10 |
| 11 local xmlns_stream = 'http://etherx.jabber.org/streams'; | 11 local xmlns_stream = 'http://etherx.jabber.org/streams'; |
| 12 local xmlns_starttls = 'urn:ietf:params:xml:ns:xmpp-tls'; | 12 local xmlns_starttls = 'urn:ietf:params:xml:ns:xmpp-tls'; |
| 13 | 13 |
| 14 local secure_auth_only = module:get_option("require_encryption"); | 14 local secure_auth_only = module:get_option("require_encryption"); |
| 15 local secure_s2s_only = module:get_option("require_s2s_encryption"); | |
| 15 | 16 |
| 16 module:add_handler("c2s_unauthed", "starttls", xmlns_starttls, | 17 module:add_handler("c2s_unauthed", "starttls", xmlns_starttls, |
| 17 function (session, stanza) | 18 function (session, stanza) |
| 18 if session.conn.starttls then | 19 if session.conn.starttls then |
| 19 session.send(st.stanza("proceed", { xmlns = xmlns_starttls })); | 20 session.send(st.stanza("proceed", { xmlns = xmlns_starttls })); |
| 59 function (session, features) | 60 function (session, features) |
| 60 -- This hook is possibly called once per host (at least if the | 61 -- This hook is possibly called once per host (at least if the |
| 61 -- remote server does not specify a to/from. | 62 -- remote server does not specify a to/from. |
| 62 if session.to_host and session.conn.starttls and not features:child_with_ns(xmlns_starttls) then | 63 if session.to_host and session.conn.starttls and not features:child_with_ns(xmlns_starttls) then |
| 63 features:tag("starttls", starttls_attr):up(); | 64 features:tag("starttls", starttls_attr):up(); |
| 64 -- TODO: Make this optional :P | 65 if secure_s2s_only then |
| 65 --features:tag("required"):up():up(); | 66 features:tag("required"):up():up(); |
| 67 else | |
| 68 features:up(); | |
| 69 end | |
| 66 end | 70 end |
| 67 end); | 71 end); |
| 68 | 72 |
| 69 -- For s2sout connections, start TLS if we can | 73 -- For s2sout connections, start TLS if we can |
| 70 module:hook_stanza(xmlns_stream, "features", | 74 module:hook_stanza(xmlns_stream, "features", |