Mercurial > prosody-hg
comparison plugins/muc/muc.lib.lua @ 5086:1ef9aa0c9fb0
MUC: Fix a traceback caused by private IQ result and error stanzas where the encoded id can't be processed.
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Thu, 09 Aug 2012 07:17:25 +0500 |
| parents | cba0b426b542 |
| children | a30507061526 |
comparison
equal
deleted
inserted
replaced
| 5085:cbc7eb5cfa8c | 5086:1ef9aa0c9fb0 |
|---|---|
| 523 end | 523 end |
| 524 elseif not current_nick then -- not in room | 524 elseif not current_nick then -- not in room |
| 525 if type == "error" or type == "result" and stanza.name == "iq" then | 525 if type == "error" or type == "result" and stanza.name == "iq" then |
| 526 local id = stanza.attr.id; | 526 local id = stanza.attr.id; |
| 527 stanza.attr.from, stanza.attr.to, stanza.attr.id = deconstruct_stanza_id(self, stanza); | 527 stanza.attr.from, stanza.attr.to, stanza.attr.id = deconstruct_stanza_id(self, stanza); |
| 528 self:_route_stanza(stanza); | 528 if stanza.attr.id then |
| 529 self:_route_stanza(stanza); | |
| 530 end | |
| 529 stanza.attr.from, stanza.attr.to, stanza.attr.id = from, to, id; | 531 stanza.attr.from, stanza.attr.to, stanza.attr.id = from, to, id; |
| 530 else | 532 else |
| 531 origin.send(st.error_reply(stanza, "cancel", "not-acceptable")); | 533 origin.send(st.error_reply(stanza, "cancel", "not-acceptable")); |
| 532 end | 534 end |
| 533 elseif stanza.name == "message" and type == "groupchat" then -- groupchat messages not allowed in PM | 535 elseif stanza.name == "message" and type == "groupchat" then -- groupchat messages not allowed in PM |
| 547 stanza.attr.from, stanza.attr.to, stanza.attr.id = deconstruct_stanza_id(self, stanza); | 549 stanza.attr.from, stanza.attr.to, stanza.attr.id = deconstruct_stanza_id(self, stanza); |
| 548 end | 550 end |
| 549 if type == 'get' and stanza.tags[1].attr.xmlns == 'vcard-temp' then | 551 if type == 'get' and stanza.tags[1].attr.xmlns == 'vcard-temp' then |
| 550 stanza.attr.to = jid_bare(stanza.attr.to); | 552 stanza.attr.to = jid_bare(stanza.attr.to); |
| 551 end | 553 end |
| 552 self:_route_stanza(stanza); | 554 if stanza.attr.id then |
| 555 self:_route_stanza(stanza); | |
| 556 end | |
| 553 stanza.attr.from, stanza.attr.to, stanza.attr.id = from, to, id; | 557 stanza.attr.from, stanza.attr.to, stanza.attr.id = from, to, id; |
| 554 else -- message | 558 else -- message |
| 555 stanza.attr.from = current_nick; | 559 stanza.attr.from = current_nick; |
| 556 for jid in pairs(o_data.sessions) do | 560 for jid in pairs(o_data.sessions) do |
| 557 stanza.attr.to = jid; | 561 stanza.attr.to = jid; |
