annotate mod_discoitems/mod_discoitems.lua @ 5401:c8d04ac200fc

mod_http_oauth2: Reject loopback URIs as client_uri This really should be a proper website with info, https://localhost is not good enough. Ideally we'd validate that it's got proper DNS and is actually reachable, but triggering HTTP or even DNS lookups seems like it would carry abuse potential that would best to avoid.
author Kim Alvefur <zash@zash.se>
date Tue, 02 May 2023 16:20:55 +0200
parents ae91c98b7e4c
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
78
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
1 -- mod_discoitems.lua
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
2 --
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
3 -- In the config, you can add:
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
4 --
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
5 -- disco_items = {
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
6 -- {"proxy.eu.jabber.org", "Jabber.org SOCKS5 service"};
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
7 -- {"conference.jabber.org", "The Jabber.org MUC"};
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
8 -- };
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
9 --
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
10
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
11 local st = require "util.stanza";
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
12
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
13 local result_query = st.stanza("query", {xmlns="http://jabber.org/protocol/disco#items"});
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
14 for _, item in ipairs(module:get_option("disco_items") or {}) do
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
15 result_query:tag("item", {jid=item[1], name=item[2]}):up();
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
16 end
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
17
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
18 module:hook('iq/host/http://jabber.org/protocol/disco#items:query', function(event)
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
19 local stanza = event.stanza;
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
20 local query = stanza.tags[1];
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
21 if stanza.attr.type == 'get' and not query.attr.node then
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
22 event.origin.send(st.reply(stanza):add_child(result_query));
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
23 return true;
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
24 end
ae91c98b7e4c mod_discoitems: Initial commit.
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
25 end, 100);