Mercurial > prosody-hg
comparison plugins/mod_s2s/mod_s2s.lua @ 4819:4fa47fc6f20c
mod_s2s: Add session.send() only to incoming streams, and fire the route/remote event on the host (not global anymore)
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Fri, 04 May 2012 02:22:26 +0100 |
| parents | 3bda6fc02652 |
| children | c65edd3bb334 |
comparison
equal
deleted
inserted
replaced
| 4818:3bda6fc02652 | 4819:4fa47fc6f20c |
|---|---|
| 248 end | 248 end |
| 249 | 249 |
| 250 log("debug", "Sending stream features: %s", tostring(features)); | 250 log("debug", "Sending stream features: %s", tostring(features)); |
| 251 send(features); | 251 send(features); |
| 252 end | 252 end |
| 253 | |
| 254 local host_session = hosts[session.to_host]; | |
| 255 session.send = function(stanza) | |
| 256 host_session.events.fire_event("route/remote", { from_host = session.to_host, to_host = session.from_host, stanza = stanza}) | |
| 257 end; | |
| 253 elseif session.direction == "outgoing" then | 258 elseif session.direction == "outgoing" then |
| 254 -- If we are just using the connection for verifying dialback keys, we won't try and auth it | 259 -- If we are just using the connection for verifying dialback keys, we won't try and auth it |
| 255 if not attr.id then error("stream response did not give us a streamid!!!"); end | 260 if not attr.id then error("stream response did not give us a streamid!!!"); end |
| 256 session.streamid = attr.id; | 261 session.streamid = attr.id; |
| 257 | 262 |
| 279 s2s_mark_connected(session); | 284 s2s_mark_connected(session); |
| 280 end | 285 end |
| 281 end | 286 end |
| 282 end | 287 end |
| 283 session.notopen = nil; | 288 session.notopen = nil; |
| 284 session.send = function(stanza) prosody.events.fire_event("route/remote", { from_host = session.to_host, to_host = session.from_host, stanza = stanza}) end; | |
| 285 end | 289 end |
| 286 | 290 |
| 287 function stream_callbacks.streamclosed(session) | 291 function stream_callbacks.streamclosed(session) |
| 288 (session.log or log)("debug", "Received </stream:stream>"); | 292 (session.log or log)("debug", "Received </stream:stream>"); |
| 289 session:close(); | 293 session:close(); |
