Mercurial > prosody-hg
comparison plugins/adhoc/adhoc.lib.lua @ 5758:ebc074918173
adhoc.lib: Don't build error reply from reply stanza
| author | Kim Alvefur <zash@zash.se> |
|---|---|
| date | Wed, 24 Jul 2013 21:49:36 +0200 |
| parents | 4d939d2b1574 |
| children | 76699a0ae4c4 |
comparison
equal
deleted
inserted
replaced
| 5757:b5ba004beb0a | 5758:ebc074918173 |
|---|---|
| 32 dataIn.action = stanza.tags[1].attr.action or "execute"; | 32 dataIn.action = stanza.tags[1].attr.action or "execute"; |
| 33 dataIn.form = stanza.tags[1]:child_with_ns("jabber:x:data"); | 33 dataIn.form = stanza.tags[1]:child_with_ns("jabber:x:data"); |
| 34 | 34 |
| 35 local data, state = command:handler(dataIn, states[sessionid]); | 35 local data, state = command:handler(dataIn, states[sessionid]); |
| 36 states[sessionid] = state; | 36 states[sessionid] = state; |
| 37 local stanza = st.reply(stanza); | |
| 38 local cmdtag; | 37 local cmdtag; |
| 39 if data.status == "completed" then | 38 if data.status == "completed" then |
| 40 states[sessionid] = nil; | 39 states[sessionid] = nil; |
| 41 cmdtag = command:cmdtag("completed", sessionid); | 40 cmdtag = command:cmdtag("completed", sessionid); |
| 42 elseif data.status == "canceled" then | 41 elseif data.status == "canceled" then |
| 43 states[sessionid] = nil; | 42 states[sessionid] = nil; |
| 44 cmdtag = command:cmdtag("canceled", sessionid); | 43 cmdtag = command:cmdtag("canceled", sessionid); |
| 45 elseif data.status == "error" then | 44 elseif data.status == "error" then |
| 46 states[sessionid] = nil; | 45 states[sessionid] = nil; |
| 47 stanza = st.error_reply(stanza, data.error.type, data.error.condition, data.error.message); | 46 local reply = st.error_reply(stanza, data.error.type, data.error.condition, data.error.message); |
| 48 origin.send(stanza); | 47 origin.send(reply); |
| 49 return true; | 48 return true; |
| 50 else | 49 else |
| 51 cmdtag = command:cmdtag("executing", sessionid); | 50 cmdtag = command:cmdtag("executing", sessionid); |
| 52 data.actions = data.actions or { "complete" }; | 51 data.actions = data.actions or { "complete" }; |
| 53 end | 52 end |
| 76 cmdtag:add_child((content.layout or content):form(content.values, "result")); | 75 cmdtag:add_child((content.layout or content):form(content.values, "result")); |
| 77 elseif name == "other" then | 76 elseif name == "other" then |
| 78 cmdtag:add_child(content); | 77 cmdtag:add_child(content); |
| 79 end | 78 end |
| 80 end | 79 end |
| 81 stanza:add_child(cmdtag); | 80 local reply = st.reply(stanza); |
| 82 origin.send(stanza); | 81 reply:add_child(cmdtag); |
| 82 origin.send(reply); | |
| 83 | 83 |
| 84 return true; | 84 return true; |
| 85 end | 85 end |
| 86 | 86 |
| 87 return _M; | 87 return _M; |
