Mercurial > prosody-modules
comparison mod_s2s_auth_dane/mod_s2s_auth_dane.lua @ 1435:cdc8f226a284
mod_s2s_auth_dane: Pause connection only if needed
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 12 Jun 2014 12:31:50 +0200 |
parents | 1caf971a2f0f |
children | 3944e364ba88 |
comparison
equal
deleted
inserted
replaced
1434:1caf971a2f0f | 1435:cdc8f226a284 |
---|---|
110 | 110 |
111 function module.add_host(module) | 111 function module.add_host(module) |
112 local function on_new_s2s(event) | 112 local function on_new_s2s(event) |
113 local host_session = event.origin; | 113 local host_session = event.origin; |
114 if host_session.type == "s2sout" or host_session.type == "s2sin" or host_session.dane ~= nil then return end -- Already authenticated | 114 if host_session.type == "s2sout" or host_session.type == "s2sin" or host_session.dane ~= nil then return end -- Already authenticated |
115 host_session.log("debug", "Pausing connection until DANE lookup is completed"); | |
116 host_session.conn:pause() | |
117 local function resume() | 115 local function resume() |
118 host_session.log("debug", "DANE lookup completed, resuming connection"); | 116 host_session.log("debug", "DANE lookup completed, resuming connection"); |
119 host_session.conn:resume() | 117 host_session.conn:resume() |
120 end | 118 end |
121 if not dane_lookup(host_session, resume) then | 119 if dane_lookup(host_session, resume) then |
122 resume(); | 120 host_session.log("debug", "Pausing connection until DANE lookup is completed"); |
121 host_session.conn:pause() | |
123 end | 122 end |
124 end | 123 end |
125 | 124 |
126 -- New outgoing connections | 125 -- New outgoing connections |
127 module:hook("stanza/http://etherx.jabber.org/streams:features", on_new_s2s, 501); | 126 module:hook("stanza/http://etherx.jabber.org/streams:features", on_new_s2s, 501); |