comparison mod_s2s_auth_dane/mod_s2s_auth_dane.lua @ 1367:103d685e2153

mod_s2s_auth_dane: Pause s2sin while doing SRV and TLSA lookups, fixes race condition (Can haz util.async plz)
author Kim Alvefur <zash@zash.se>
date Thu, 20 Mar 2014 15:31:15 +0100
parents 920ac9a8480b
children 5724008bbdb1
comparison
equal deleted inserted replaced
1366:f581210093a7 1367:103d685e2153
106 end 106 end
107 107
108 function module.add_host(module) 108 function module.add_host(module)
109 module:hook("s2s-stream-features", function(event) 109 module:hook("s2s-stream-features", function(event)
110 -- dane_lookup(origin, origin.from_host); 110 -- dane_lookup(origin, origin.from_host);
111 dane_lookup(event.origin); 111 local host_session = event.origin;
112 end, 1); 112 host_session.log("debug", "Pausing connection until DANE lookup is completed");
113 host_session.conn:pause()
114 local function resume()
115 module:log("eebug", "Resuming connection");
116 host_session.conn:resume()
117 end
118 if not dane_lookup(host_session, resume) then
119 resume();
120 end
121 end, 10);
113 122
114 module:hook("s2s-authenticated", function(event) 123 module:hook("s2s-authenticated", function(event)
115 local session = event.session; 124 local session = event.session;
116 if session.dane and not session.secure then 125 if session.dane and not session.secure then
117 -- TLSA record but no TLS, not ok. 126 -- TLSA record but no TLS, not ok.