annotate mod_fallback_vcard/mod_fallback_vcard.lua @ 4877:adc6241e5d16

mod_measure_process: Report the enforced limit The soft limit is what the kernel actually enforces, while the hard limit is is how far you can change the soft limit without privileges. Unless the process dynamically adjusts the soft limit, knowing the hard limit is not as useful as knowing the soft limit. Reporting the soft limit and the number of in-use FDs allows placing alerts on expressions like 'process_open_fds / process_max_fds >= 0.95'
author Kim Alvefur <zash@zash.se>
date Tue, 18 Jan 2022 18:55:20 +0100
parents ceb594a14a18
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1899
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 local datamanager = require "util.datamanager";
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 local usermanager = require "core.usermanager";
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 local st = require "util.stanza";
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4 local host = module.host;
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 local jid_split = require "util.jid".split;
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 local orgname = module:get_option_string("default_vcard_orgname");
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 local orgmail = module:get_option_boolean("default_vcard_orgmail");
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 module:hook("iq/bare/vcard-temp:vCard", function(event)
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 local session, stanza = event.origin, event.stanza;
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 local to = stanza.attr.to;
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 local username = jid_split(to);
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14 if not username then return end
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 local vcard = datamanager.load(username, host, "vcard");
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 local data = datamanager.load(username, host, "account_details");
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 local exists = usermanager.user_exists(username, host);
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 module:log("debug", "has %s: %s", "vcard", tostring(vcard));
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20 module:log("debug", "has %s: %s", "data", tostring(data));
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 module:log("debug", "has %s: %s", "exists", tostring(exists));
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 data = data or {};
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 if not(vcard) and data and exists then
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 -- MAYBE
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 -- first .. " " .. last
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 -- first, last = name:match("^(%w+) (%w+)$")
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 local vcard = st.reply(stanza):tag("vCard", { xmlns = "vcard-temp" })
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 :tag("VERSION"):text("3.0"):up()
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30 :tag("N")
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31 :tag("FAMILY"):text(data.last or ""):up()
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
32 :tag("GIVEN"):text(data.first or ""):up()
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 :up()
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34 :tag("FN"):text(data.name or ""):up()
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 :tag("NICKNAME"):text(data.nick or username):up()
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36 :tag("JABBERID"):text(username.."@"..host):up();
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37 if orgmail then
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38 vcard:tag("EMAIL"):tag("USERID"):text(username.."@"..host):up():up();
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
39 elseif data.email then
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
40 vcard:tag("EMAIL"):tag("USERID"):text(data.email):up():up();
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
41 end
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 if orgname then
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
43 vcard:tag("ORG"):tag("ORGNAME"):text(orgname):up():up();
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
44 end
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
45 session.send(vcard);
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
46 return true;
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
47 end
ceb594a14a18 mod_fallback_vcard: Generates missing vcards from a template
Kim Alvefur <zash@zash.se>
parents:
diff changeset
48 end, 1);