Mercurial > prosody-modules
comparison mod_ipcheck/mod_ipcheck.lua @ 130:51cd803e86be
mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
| author | Waqas Hussain <waqas20@gmail.com> |
|---|---|
| date | Fri, 19 Feb 2010 09:08:22 +0500 |
| parents | |
| children | 46741fc09091 |
comparison
equal
deleted
inserted
replaced
| 129:5fc00a3e47b5 | 130:51cd803e86be |
|---|---|
| 1 | |
| 2 -- mod_ipcheck.lua | |
| 3 -- Implementation of XEP-xxxx: Server IP Check <http://xmpp.org/extensions/inbox/sic.html> | |
| 4 | |
| 5 local st = require "util.stanza"; | |
| 6 | |
| 7 module:add_feature("urn:xmpp:sic:0"); | |
| 8 | |
| 9 module:hook("iq/bare/urn:xmpp:sic:0:ip", function(event) | |
| 10 local origin, stanza = event.origin, event.stanza; | |
| 11 if not stanza.attr.to and stanza.attr.type == "get" then | |
| 12 if stanza.attr.to then | |
| 13 origin.send(st.error_reply(stanza, "auth", "not-authorized", "You can only ask about your own IP address")); | |
| 14 elseif origin.ip then | |
| 15 origin.send(st.reply(stanza):tag("ip", {xmlns='urn:xmpp:sic:0'}):text(origin.ip)); | |
| 16 else | |
| 17 -- IP addresses should normally be available, but in case they are not | |
| 18 origin.send(st.error_reply(stanza, "cancel", "item-not-found", "IP address for this session is not available")); | |
| 19 end | |
| 20 return true; | |
| 21 end | |
| 22 end); |
