annotate mod_nodeinfo2/mod_nodeinfo2.lua @ 5298:12f7d8b901e0

mod_audit: Support for adding location (GeoIP) to audit events This can be more privacy-friendly than logging full IP addresses, and also more informative to a user - IP addresses don't mean much to the average person, however if they see activity from outside their expected country, they can immediately identify suspicious activity. As with IPs, this field is configurable for deployments that would like to disable it. Location is also not logged when the geoip library is not available.
author Matthew Wild <mwild1@gmail.com>
date Sat, 01 Apr 2023 13:11:53 +0100
parents bac3dae031ee
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
3705
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 local json = require "util.json";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 local array = require "util.array";
3790
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
3 local add_task = require "util.timer".add_task;
3707
3248295e1b16 mod_nodeinfo2: Retrieve message count from mod_measure_message_e2ee for localPosts and localComments.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3706
diff changeset
4 local get_stats = require "core.statsmanager".get_stats;
3790
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
5 local list_users = require "core.usermanager".users;
3708
0a800463bc08 mod_nodeinfo2: Fetch active users from mod_lastlog.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3707
diff changeset
6 local os_time = os.time;
3705
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7
4595
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 3792
diff changeset
8 assert(get_stats, "not compatible with trunk based on openmetrics");
bac3dae031ee Add note of incompatibility with trunk since 5f15ab7c6ae5
Kim Alvefur <zash@zash.se>
parents: 3792
diff changeset
9
3705
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 module:depends("http");
3792
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
11
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
12 local expose_users = module:get_option_boolean("nodeinfo2_expose_users", true);
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
13 if expose_users then
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
14 module:depends("lastlog");
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
15 end
3789
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
16
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
17 local expose_posts = module:get_option_boolean("nodeinfo2_expose_posts", true);
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
18 if expose_posts then
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
19 module:depends("measure_message_e2ee");
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
20 end
3705
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21
3784
741a1e400de4 mod_nodeinfo2: Count messages per host
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3783
diff changeset
22 local main_store = module:open_store();
741a1e400de4 mod_nodeinfo2: Count messages per host
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3783
diff changeset
23 local lastlog_store = module:open_store("lastlog");
3708
0a800463bc08 mod_nodeinfo2: Fetch active users from mod_lastlog.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3707
diff changeset
24
3789
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
25 local data;
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
26 if expose_posts then
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
27 data = main_store:get("nodeinfo2") or { message_count = 0 };
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
28 end
3710
7f5ce667d93e mod_nodeinfo2: Store and restore the total message count.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3708
diff changeset
29
3790
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
30 local total_users = 0;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
31 local week_users = 0;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
32 local month_users = 0;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
33 local half_year_users = 0;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
34
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
35 local function update_user_list()
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
36 for user in list_users(module.host) do
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
37 total_users = total_users + 1;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
38 local lastlog = lastlog_store:get(user);
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
39 if lastlog and lastlog.timestamp then
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
40 local delta = os_time() - lastlog.timestamp;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
41 if delta < 7 * 86400 then
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
42 week_users = week_users + 1;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
43 end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
44 if delta < 30 * 86400 then
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
45 month_users = month_users + 1;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
46 end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
47 if delta < 6 * 30 * 86400 then
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
48 half_year_users = half_year_users + 1;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
49 end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
50 end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
51 end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
52
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
53 -- Remove the properties if we couldn’t find a single active user. It most likely means mod_lastlog isn’t in use.
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
54 if half_year_users == 0 and month_users == 0 and week_users == 0 then
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
55 week_users = nil;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
56 month_users = nil;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
57 half_year_users = nil;
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
58 end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
59 end
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
60
3792
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
61 if expose_users then
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
62 add_task(86400, update_user_list);
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
63 update_user_list();
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
64 end
3790
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
65
3705
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
66 module:provides("http", {
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
67 default_path = "/.well-known/x-nodeinfo2";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
68 route = {
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
69 GET = function (event)
3792
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
70 local usage = {};
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
71 if expose_users then
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
72 usage.users = {
3789
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
73 total = total_users;
3790
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
74 activeWeek = week_users;
3789
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
75 activeMonth = month_users;
3790
352f3efe1b67 mod_nodeinfo2: Refresh the number of recent users daily
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3789
diff changeset
76 activeHalfyear = half_year_users;
3789
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
77 };
3792
aec772bbd558 mod_nodeinfo2: Only expose amount of accounts if nodeinfo2_expose_users isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3791
diff changeset
78 end
3789
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
79
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
80 if expose_posts then
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
81 local stats, changed_only, extras = get_stats();
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
82 for stat, _ in pairs(stats) do
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
83 if stat == "/"..module.host.."/mod_measure_message_e2ee/message:rate" then
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
84 local new_message_count = extras[stat].total;
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
85 if new_message_count ~= data.message_count then
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
86 data = { message_count = new_message_count };
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
87 main_store:set("nodeinfo2", data);
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
88 end
3710
7f5ce667d93e mod_nodeinfo2: Store and restore the total message count.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3708
diff changeset
89 end
3707
3248295e1b16 mod_nodeinfo2: Retrieve message count from mod_measure_message_e2ee for localPosts and localComments.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3706
diff changeset
90 end
3789
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
91 usage.localPosts = data.message_count;
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
92 -- TODO: also count PubSub replies here.
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
93 usage.localComments = 0;
3707
3248295e1b16 mod_nodeinfo2: Retrieve message count from mod_measure_message_e2ee for localPosts and localComments.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3706
diff changeset
94 end
3248295e1b16 mod_nodeinfo2: Retrieve message count from mod_measure_message_e2ee for localPosts and localComments.
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3706
diff changeset
95
3705
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
96 event.response.headers.content_type = "application/json";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
97 return json.encode({
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
98 version = "1.0";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
99 server = {
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
100 baseUrl = module:http_url("","/");
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
101 name = module.host;
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
102 software = "Prosody";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
103 version = prosody.version;
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
104 };
3706
36b645e94325 mod_nodeinfo2: Add some TODOs
Kim Alvefur <zash@zash.se>
parents: 3705
diff changeset
105 --[[ TODO re-use data from mod_server_contact_info ?
3705
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
106 organization = {
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
107 name = "";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
108 contact = "";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
109 account = "";
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
110 };
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
111 --]]
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
112 protocols = array {
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
113 "xmpp",
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
114 };
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
115 services = {
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
116 inbound = array {
3791
34a8f9f996ec mod_nodeinfo2: Expose XMPP services
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3790
diff changeset
117 "xmpp";
3705
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
118 };
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
119 outbound = array {
3791
34a8f9f996ec mod_nodeinfo2: Expose XMPP services
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3790
diff changeset
120 "xmpp";
3705
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
121 };
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
122 };
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
123 openRegistrations = module:get_option_boolean("allow_registration", false);
3789
e3b673df3906 mod_nodeinfo2: Only expose message stats if nodeinfo2_expose_posts isn’t set to false
Emmanuel Gil Peyrot <linkmauve@linkmauve.fr>
parents: 3786
diff changeset
124 usage = usage;
3705
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
125 });
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
126 end;
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
127 }
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
128 });
5d3d8b75dee9 mod_nodeinfo2: Expose service metadata per NodeInfo2
Kim Alvefur <zash@zash.se>
parents:
diff changeset
129