annotate mod_ipcheck/mod_ipcheck.lua @ 737:e4ea03b060ed

mod_archive: switch from/to The XEP-0136 is not very explicit about the meening of <from> and <to> elements, but the examples are clear: <from> means it comes from the user in the 'with' attribute of the collection. That is the opposite of what is currently implemented in that module. So for better compatibility with complient clients, this switch the 'from' and 'to' fields
author Olivier Goffart <ogoffart@woboq.com>
date Wed, 04 Jul 2012 14:08:43 +0200
parents 0525c66e7d13
children d1bc9a796daf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
130
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
1
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
2 -- mod_ipcheck.lua
136
0525c66e7d13 mod_ipcheck: Updated XEP number and URL in comments to the newly published XEP.
Waqas Hussain <waqas20@gmail.com>
parents: 135
diff changeset
3 -- Implementation of XEP-0279: Server IP Check <http://xmpp.org/extensions/xep-0279.html>
130
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
4
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
5 local st = require "util.stanza";
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
6
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
7 module:add_feature("urn:xmpp:sic:0");
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
8
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
9 module:hook("iq/bare/urn:xmpp:sic:0:ip", function(event)
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
10 local origin, stanza = event.origin, event.stanza;
134
744deabdee81 mod_ipcheck: Fixed: 'service-unavailable' was sent instead of 'forbidden' on unauthorized access.
Waqas Hussain <waqas20@gmail.com>
parents: 131
diff changeset
11 if stanza.attr.type == "get" then
130
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
12 if stanza.attr.to then
131
46741fc09091 mod_ipcheck: Change error from 'not-authorized' to 'forbidden', as specified in the XEP.
Waqas Hussain <waqas20@gmail.com>
parents: 130
diff changeset
13 origin.send(st.error_reply(stanza, "auth", "forbidden", "You can only ask about your own IP address"));
130
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
14 elseif origin.ip then
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
15 origin.send(st.reply(stanza):tag("ip", {xmlns='urn:xmpp:sic:0'}):text(origin.ip));
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
16 else
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
17 -- IP addresses should normally be available, but in case they are not
135
d3c28c5fdbae mod_ipcheck: Change error from 'item-not-found' to 'service-unavailable' for missing IP.
Waqas Hussain <waqas20@gmail.com>
parents: 134
diff changeset
18 origin.send(st.error_reply(stanza, "cancel", "service-unavailable", "IP address for this session is not available"));
130
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
19 end
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
20 return true;
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
21 end
51cd803e86be mod_ipcheck: Initial commit. An implementation of the Server IP Check proto-XEP.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
22 end);