Mercurial > prosody-modules
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 |
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); |