Mercurial > prosody-hg
comparison plugins/mod_private.lua @ 3114:75ea1aff69da
mod_private: Detect datamanager read errors, and respond with 'internal-server-error'.
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Mon, 24 May 2010 01:00:30 +0500 |
| parents | b7049746bd29 |
| children | 4646b5b039ca |
comparison
equal
deleted
inserted
replaced
| 3113:30896751dd43 | 3114:75ea1aff69da |
|---|---|
| 24 if not(node or host) or (node == session.username and host == session.host) then | 24 if not(node or host) or (node == session.username and host == session.host) then |
| 25 node, host = session.username, session.host; | 25 node, host = session.username, session.host; |
| 26 if #query.tags == 1 then | 26 if #query.tags == 1 then |
| 27 local tag = query.tags[1]; | 27 local tag = query.tags[1]; |
| 28 local key = tag.name..":"..tag.attr.xmlns; | 28 local key = tag.name..":"..tag.attr.xmlns; |
| 29 local data = datamanager.load(node, host, "private"); | 29 local data, err = datamanager.load(node, host, "private"); |
| 30 if err then | |
| 31 session.send(st.error_reply(stanza, "wait", "internal-server-error")); | |
| 32 return true; | |
| 33 end | |
| 30 if stanza.attr.type == "get" then | 34 if stanza.attr.type == "get" then |
| 31 if data and data[key] then | 35 if data and data[key] then |
| 32 session.send(st.reply(stanza):tag("query", {xmlns = "jabber:iq:private"}):add_child(st.deserialize(data[key]))); | 36 session.send(st.reply(stanza):tag("query", {xmlns = "jabber:iq:private"}):add_child(st.deserialize(data[key]))); |
| 33 else | 37 else |
| 34 session.send(st.reply(stanza):add_child(stanza.tags[1])); | 38 session.send(st.reply(stanza):add_child(stanza.tags[1])); |
