Mercurial > prosody-hg
comparison plugins/mod_bosh.lua @ 5071:0382f456ac82
mod_bosh: Remove redundant code (send stream features in only one place) (thanks Zash)
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Wed, 01 Aug 2012 01:03:53 +0100 |
| parents | 4bf6bd22ad11 |
| children | f3662fea95d9 |
comparison
equal
deleted
inserted
replaced
| 5070:4bf6bd22ad11 | 5071:0382f456ac82 |
|---|---|
| 244 local session = { | 244 local session = { |
| 245 type = "c2s_unauthed", conn = {}, sid = sid, rid = tonumber(attr.rid)-1, host = attr.to, | 245 type = "c2s_unauthed", conn = {}, sid = sid, rid = tonumber(attr.rid)-1, host = attr.to, |
| 246 bosh_version = attr.ver, bosh_wait = attr.wait, streamid = sid, | 246 bosh_version = attr.ver, bosh_wait = attr.wait, streamid = sid, |
| 247 bosh_hold = BOSH_DEFAULT_HOLD, bosh_max_inactive = BOSH_DEFAULT_INACTIVITY, | 247 bosh_hold = BOSH_DEFAULT_HOLD, bosh_max_inactive = BOSH_DEFAULT_INACTIVITY, |
| 248 requests = { }, send_buffer = {}, reset_stream = bosh_reset_stream, | 248 requests = { }, send_buffer = {}, reset_stream = bosh_reset_stream, |
| 249 close = bosh_close_stream, dispatch_stanza = core_process_stanza, | 249 close = bosh_close_stream, dispatch_stanza = core_process_stanza, notopen = true, |
| 250 log = logger.init("bosh"..sid), secure = consider_bosh_secure or request.secure, | 250 log = logger.init("bosh"..sid), secure = consider_bosh_secure or request.secure, |
| 251 ip = get_ip_from_request(request); | 251 ip = get_ip_from_request(request); |
| 252 }; | 252 }; |
| 253 sessions[sid] = session; | 253 sessions[sid] = session; |
| 254 | 254 |
| 255 session.log("debug", "BOSH session created for request from %s", session.ip); | 255 session.log("debug", "BOSH session created for request from %s", session.ip); |
| 256 log("info", "New BOSH session, assigned it sid '%s'", sid); | 256 log("info", "New BOSH session, assigned it sid '%s'", sid); |
| 257 | 257 |
| 258 -- Send creation response | 258 -- Send creation response |
| 259 local creating_session = true; | 259 local creating_session = true; |
| 260 local features = st.stanza("stream:features"); | |
| 261 hosts[session.host].events.fire_event("stream-features", { origin = session, features = features }); | |
| 262 fire_event("stream-features", session, features); | |
| 263 table.insert(session.send_buffer, tostring(features)); | |
| 264 | 260 |
| 265 local r = session.requests; | 261 local r = session.requests; |
| 266 function session.send(s) | 262 function session.send(s) |
| 267 -- We need to ensure that outgoing stanzas have the jabber:client xmlns | 263 -- We need to ensure that outgoing stanzas have the jabber:client xmlns |
| 268 if s.attr and not s.attr.xmlns then | 264 if s.attr and not s.attr.xmlns then |
