Software /
code /
verse
Comparison
plugins/private.lua @ 156:ab0f0326b2b4
Merge with Zash
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Sat, 20 Nov 2010 16:33:34 +0000 |
parent | 155:9c9af7a196ed |
child | 250:a5ac643a7fd6 |
comparison
equal
deleted
inserted
replaced
154:a4dc96890729 | 156:ab0f0326b2b4 |
---|---|
1 -- Implements XEP-0049: Private XML Storage | |
2 | |
1 local xmlns_private = "jabber:iq:private"; | 3 local xmlns_private = "jabber:iq:private"; |
2 | 4 |
3 function verse.plugins.private(stream) | 5 function verse.plugins.private(stream) |
4 function stream:private_set(name, xmlns, data, callback) | 6 function stream:private_set(name, xmlns, data, callback) |
5 local iq = verse.iq({ type = "set" }) | 7 local iq = verse.iq({ type = "set" }) |
6 :tag("query", { xmlns = xmlns_private }) | 8 :tag("query", { xmlns = xmlns_private }); |
7 :tag(name, { xmlns = xmlns }); | 9 if data then |
8 if data then iq:add_child(data); end | 10 if data.name == name and data.attr and data.attr.xmlns == xmlns then |
9 self:send_iq(iq, function () callback(); end); | 11 iq:add_child(data); |
12 else | |
13 iq:tag(name, { xmlns = xmlns }) | |
14 :add_child(data); | |
15 end | |
16 end | |
17 self:send_iq(iq, callback); | |
10 end | 18 end |
11 | 19 |
12 function stream:private_get(name, xmlns, callback) | 20 function stream:private_get(name, xmlns, callback) |
13 self:send_iq(verse.iq({type="get"}) | 21 self:send_iq(verse.iq({type="get"}) |
14 :tag("query", { xmlns = xmlns_private }) | 22 :tag("query", { xmlns = xmlns_private }) |