Annotate

mod_default_vcard/mod_default_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
parent 936:7236cdec3ea1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
455
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 local datamanager = require "util.datamanager";
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 local st = require "util.stanza";
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3 local host = module.host;
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
4
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 module:hook("user-registered", function(event)
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 local username = event.username;
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 local data = datamanager.load(username, host, "account_details");
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8 local vcard = datamanager.load(username, host, "vcard");
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 --module:log("debug", "Has account details: %s", data and "yes" or "no");
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 --module:log("debug", "Has vCard: %s", vcard and "yes" or "no");
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 if data and not vcard then
936
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
12 local name, first, last = data.name, data.first, data.last;
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
13 if not name and (first and last) then
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
14 name = first .. " " .. last;
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
15 elseif name and not (first and last) then
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
16 first, last = name:match("^(%w+)%s+(%w+)$")
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
17 end
455
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 local vcard = st.stanza("vCard", { xmlns = "vcard-temp" })
936
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
19 :tag("VERSION"):text("3.0"):up();
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
20 if first or last then
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
21 vcard:tag("N")
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
22 :tag("FAMILY"):text(last or ""):up()
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
23 :tag("GIVEN"):text(first or ""):up()
455
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 :up()
936
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
25 end
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
26 if name then
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
27 vcard:tag("FN"):text(name or ""):up()
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
28 end
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
29 vcard:tag("NICKNAME"):text(data.nick or username):up();
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
30 if data.email then
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
31 vcard:tag("EMAIL"):tag("USERID"):text(data.email):up():up();
7236cdec3ea1 mod_default_vcard: Guess FN from FIRST + LAST and vice versa
Kim Alvefur <zash@zash.se>
parents: 455
diff changeset
32 end
455
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
33 local ok, err = datamanager.store(username, host, "vcard", st.preserialize(vcard));
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34 if not ok then
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 module:log("error", "Couldn't save vCard data, %s", err);
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36 end
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37 end
52f2188ec47d mod_default_vcard: Sets initial vCard from data enterd on registration
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38 end);