Mercurial > prosody-hg
comparison core/s2smanager.lua @ 559:fa4a51fe6442
Remove an incorrect line which I didn't add, and fix the proper way. Corrects the sending of stanzas over unauthed s2sout's. Also fixes mod_dialback to send stanzas and not strings.
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Fri, 05 Dec 2008 05:23:42 +0000 |
| parents | ab3960421356 |
| children | 5821eaa80baa |
comparison
equal
deleted
inserted
replaced
| 558:ab3960421356 | 559:fa4a51fe6442 |
|---|---|
| 50 module "s2smanager" | 50 module "s2smanager" |
| 51 | 51 |
| 52 local function compare_srv_priorities(a,b) return a.priority < b.priority or a.weight < b.weight; end | 52 local function compare_srv_priorities(a,b) return a.priority < b.priority or a.weight < b.weight; end |
| 53 | 53 |
| 54 function send_to_host(from_host, to_host, data) | 54 function send_to_host(from_host, to_host, data) |
| 55 if data.name then data = tostring(data); end | |
| 56 local host = hosts[from_host].s2sout[to_host]; | 55 local host = hosts[from_host].s2sout[to_host]; |
| 57 if host then | 56 if host then |
| 58 -- We have a connection to this host already | 57 -- We have a connection to this host already |
| 59 if host.type == "s2sout_unauthed" and (data.xmlns == "jabber:client" or data.xmlns == "jabber:server") then | 58 if host.type == "s2sout_unauthed" and data.name ~= "db:verify" and ((not data.xmlns) or data.xmlns == "jabber:client" or data.xmlns == "jabber:server") then |
| 60 (host.log or log)("debug", "trying to send over unauthed s2sout to "..to_host); | 59 (host.log or log)("debug", "trying to send over unauthed s2sout to "..to_host); |
| 61 if not host.notopen and not host.dialback_key then | 60 if not host.notopen and not host.dialback_key then |
| 62 host.log("debug", "dialback had not been initiated"); | 61 host.log("debug", "dialback had not been initiated"); |
| 63 initiate_dialback(host); | 62 initiate_dialback(host); |
| 64 end | 63 end |
| 65 | 64 |
| 66 -- Queue stanza until we are able to send it | 65 -- Queue stanza until we are able to send it |
| 67 if host.sendq then t_insert(host.sendq, data); | 66 if host.sendq then t_insert(host.sendq, tostring(data)); |
| 68 else host.sendq = { data }; end | 67 else host.sendq = { tostring(data) }; end |
| 69 host.log("debug", "stanza queued"); | 68 host.log("debug", "stanza [%s] queued ", data.name); |
| 70 elseif host.type == "local" or host.type == "component" then | 69 elseif host.type == "local" or host.type == "component" then |
| 71 log("error", "Trying to send a stanza to ourselves??") | 70 log("error", "Trying to send a stanza to ourselves??") |
| 72 log("error", "Traceback: %s", get_traceback()); | 71 log("error", "Traceback: %s", get_traceback()); |
| 73 log("error", "Stanza: %s", tostring(data)); | 72 log("error", "Stanza: %s", tostring(data)); |
| 74 else | 73 else |
| 83 end | 82 end |
| 84 else | 83 else |
| 85 log("debug", "opening a new outgoing connection for this stanza"); | 84 log("debug", "opening a new outgoing connection for this stanza"); |
| 86 local host_session = new_outgoing(from_host, to_host); | 85 local host_session = new_outgoing(from_host, to_host); |
| 87 -- Store in buffer | 86 -- Store in buffer |
| 88 host_session.sendq = { data }; | 87 host_session.sendq = { tostring(data) }; |
| 89 end | 88 end |
| 90 end | 89 end |
| 91 | 90 |
| 92 local open_sessions = 0; | 91 local open_sessions = 0; |
| 93 | 92 |
