Software /
code /
prosody-modules
Changeset
1356:a74ba847195a
mod_s2s_auth_dane: Drop support for domains without SRV for now
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 18 Mar 2014 16:09:51 +0100 |
parents | 1355:7f68d950bdd6 |
children | 1357:67990f8d8228 |
files | mod_s2s_auth_dane/mod_s2s_auth_dane.lua |
diffstat | 1 files changed, 5 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/mod_s2s_auth_dane/mod_s2s_auth_dane.lua Tue Mar 18 16:02:24 2014 +0100 +++ b/mod_s2s_auth_dane/mod_s2s_auth_dane.lua Tue Mar 18 16:09:51 2014 +0100 @@ -47,17 +47,18 @@ if host_session.direction == "incoming" then local name = idna_to_ascii(host_session.from_host); if not name then return end - local handle = dns_lookup(function (answer) + host_session.dane = dns_lookup(function (answer) if not answer.secure then if cb then return cb(a,b,c,e); end return; end - if #answer == 1 and answer[1].srv.target == '.' then return end + local n = #answer + if n == 0 then if cb then return cb(a,b,c,e); end return end + if n == 1 and answer[1].srv.target == '.' then return end local srv_hosts = { answer = answer }; local dane = {}; host_session.dane = dane; host_session.srv_hosts = srv_hosts; - local n = #answer for _, record in ipairs(answer) do t_insert(srv_hosts, record.srv); dns_lookup(function(dane_answer) @@ -75,8 +76,7 @@ end, "_xmpp-server._tcp."..name..".", "SRV"); return true; elseif host_session.direction == "outgoing" then - local srv_hosts = host_session.srv_hosts; - if not (srv_choice and srv_choice.answer and srv_choice.answer.secure) then + if not host_session.srv_hosts then return end local srv_choice = host_session.srv_hosts[host_session.srv_choice]; host_session.dane = dns_lookup(function(answer) if answer and (answer.secure and #answer > 0) or answer.bogus then @@ -93,10 +93,6 @@ local _try_connect = s2sout.try_connect; function s2sout.try_connect(host_session, connect_host, connect_port, err) - if not host_session.srv_hosts then - host_session.srv_hosts = { answer = { secure = true }, { target = connect_host, port = connect_port } }; - host_session.srv_choice = 1; - end if not err and dane_lookup(host_session, _try_connect, host_session, connect_host, connect_port, err) then return true; end