From 7dff400ed5e217b3316b9b311b41c826d10e67f1 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Fri, 24 Apr 2015 14:14:01 +0200 Subject: net.dns, mod_s2s: Add chasing of CNAMEs to net.dns and remove it from mod_s2s --- plugins/mod_s2s/s2sout.lib.lua | 12 ------------ 1 file changed, 12 deletions(-) (limited to 'plugins') diff --git a/plugins/mod_s2s/s2sout.lib.lua b/plugins/mod_s2s/s2sout.lib.lua index b24faf85..67b8fd0f 100644 --- a/plugins/mod_s2s/s2sout.lib.lua +++ b/plugins/mod_s2s/s2sout.lib.lua @@ -169,18 +169,6 @@ function s2sout.try_connect(host_session, connect_host, connect_port, err) handle4 = adns.lookup(function (reply, err) handle4 = nil; - -- COMPAT: This is a compromise for all you CNAME-(ab)users :) - if not (reply and reply[#reply] and reply[#reply].a) then - local count = max_dns_depth; - reply = dns.peek(connect_host, "CNAME", "IN"); - while count > 0 and reply and reply[#reply] and not reply[#reply].a and reply[#reply].cname do - log("debug", "Looking up %s (DNS depth is %d)", tostring(reply[#reply].cname), count); - reply = dns.peek(reply[#reply].cname, "A", "IN") or dns.peek(reply[#reply].cname, "CNAME", "IN"); - count = count - 1; - end - end - -- end of CNAME resolving - if reply and reply[#reply] and reply[#reply].a then for _, ip in ipairs(reply) do log("debug", "DNS reply for %s gives us %s", connect_host, ip.a); -- cgit v1.2.3 From 1265483280b09699ea6def541dd6df519a1e9c46 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Sat, 25 Apr 2015 14:21:40 +0200 Subject: mod_admin_adhoc: Remove special treatment of the "pending" roster entry --- plugins/mod_admin_adhoc.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'plugins') diff --git a/plugins/mod_admin_adhoc.lua b/plugins/mod_admin_adhoc.lua index 405980c2..4fab84bc 100644 --- a/plugins/mod_admin_adhoc.lua +++ b/plugins/mod_admin_adhoc.lua @@ -246,7 +246,7 @@ local get_user_roster_handler = adhoc_simple(get_user_roster_layout, function(fi local query = st.stanza("query", { xmlns = "jabber:iq:roster" }); for jid in pairs(roster) do - if jid ~= "pending" and jid then + if jid then query:tag("item", { jid = jid, subscription = roster[jid].subscription, @@ -299,7 +299,7 @@ local get_user_stats_handler = adhoc_simple(get_user_stats_layout, function(fiel local IPs = ""; local resources = ""; for jid in pairs(roster) do - if jid ~= "pending" and jid then + if jid then rostersize = rostersize + 1; end end -- cgit v1.2.3 From e5f23f0fef9c7911ed00e9099ddf72438dd5b588 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Sat, 25 Apr 2015 14:57:52 +0200 Subject: mod_blocklist: Some cleanup [luacheck] --- plugins/mod_blocklist.lua | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'plugins') diff --git a/plugins/mod_blocklist.lua b/plugins/mod_blocklist.lua index 81bdd2c6..baed6709 100644 --- a/plugins/mod_blocklist.lua +++ b/plugins/mod_blocklist.lua @@ -13,11 +13,11 @@ local user_exists = require"core.usermanager".user_exists; local is_contact_subscribed = require"core.rostermanager".is_contact_subscribed; local st = require"util.stanza"; local st_error_reply = st.error_reply; -local jid_prep, jid_split = import("util.jid", "prep", "split"); +local jid_prep = require"util.jid".prep; +local jid_split = require"util.jid".split; -local host = module.host; local storage = module:open_store(); -local sessions = prosody.hosts[host].sessions; +local sessions = prosody.hosts[module.host].sessions; -- Cache of blocklists used since module was loaded local cache = {}; @@ -72,7 +72,7 @@ end local function get_blocklist(username) local blocklist = cache[username]; if not blocklist then - if not user_exists(username, host) then + if not user_exists(username, module.host) then return null_blocklist; end blocklist = storage:get(username); @@ -106,14 +106,13 @@ local function edit_blocklist(event) local action = stanza.tags[1]; local new = {}; - local jid; for item in action:childtags("item") do - jid = jid_prep(item.attr.jid); + local jid = jid_prep(item.attr.jid); if not jid then return origin.send(st_error_reply(stanza, "modify", "jid-malformed")); end item.attr.jid = jid; -- echo back prepped - new[jid] = is_contact_subscribed(username, host, jid) or false; + new[jid] = is_contact_subscribed(username, module.host, jid) or false; end local mode = action.name == "block" or nil; @@ -176,14 +175,14 @@ module:hook("iq-set/self/urn:xmpp:blocking:unblock", edit_blocklist); -- Cache invalidation, solved! module:hook_global("user-deleted", function (event) - if event.host == host then + if event.host == module.host then cache[event.username] = nil; end end); -- Buggy clients module:hook("iq-error/self/blocklist-push", function (event) - local type, condition, text = event.stanza:get_error(); + local _, condition, text = event.stanza:get_error(); (event.origin.log or module._log)("warn", "Client returned an error in response to notification from mod_%s: %s%s%s", module.name, condition, text and ": " or "", text or ""); return true; end); -- cgit v1.2.3 From 48652fb9d3b1eeb4dc44460abf3ba2060cf5bb91 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Sun, 26 Apr 2015 00:06:11 +0200 Subject: mod_c2s, mod_s2s: Collect statistics on number of connections --- plugins/mod_c2s.lua | 4 ++++ plugins/mod_s2s/mod_s2s.lua | 4 ++++ 2 files changed, 8 insertions(+) (limited to 'plugins') diff --git a/plugins/mod_c2s.lua b/plugins/mod_c2s.lua index 4238b2e7..1423eaa3 100644 --- a/plugins/mod_c2s.lua +++ b/plugins/mod_c2s.lua @@ -28,6 +28,8 @@ local c2s_timeout = module:get_option_number("c2s_timeout"); local stream_close_timeout = module:get_option_number("c2s_close_timeout", 5); local opt_keepalives = module:get_option_boolean("c2s_tcp_keepalives", module:get_option_boolean("tcp_keepalives", true)); +local measure_connections = module:measure("connections", "counter"); + local sessions = module:shared("sessions"); local core_process_stanza = prosody.core_process_stanza; local hosts = prosody.hosts; @@ -198,6 +200,7 @@ end --- Port listener function listener.onconnect(conn) + measure_connections(1); local session = sm_new_session(conn); sessions[conn] = session; @@ -270,6 +273,7 @@ function listener.onincoming(conn, data) end function listener.ondisconnect(conn, err) + measure_connections(-1); local session = sessions[conn]; if session then (session.log or log)("info", "Client disconnected: %s", err or "connection closed"); diff --git a/plugins/mod_s2s/mod_s2s.lua b/plugins/mod_s2s/mod_s2s.lua index a58c6421..1ce63a8b 100644 --- a/plugins/mod_s2s/mod_s2s.lua +++ b/plugins/mod_s2s/mod_s2s.lua @@ -37,6 +37,8 @@ local secure_domains, insecure_domains = module:get_option_set("s2s_secure_domains", {})._items, module:get_option_set("s2s_insecure_domains", {})._items; local require_encryption = module:get_option_boolean("s2s_require_encryption", false); +local measure_connections = module:measure("connections", "counter"); + local sessions = module:shared("sessions"); local log = module._log; @@ -574,6 +576,7 @@ local function initialize_session(session) end function listener.onconnect(conn) + measure_connections(1); conn:setoption("keepalive", opt_keepalives); local session = sessions[conn]; if not session then -- New incoming connection @@ -605,6 +608,7 @@ function listener.onstatus(conn, status) end function listener.ondisconnect(conn, err) + measure_connections(-1); local session = sessions[conn]; if session then sessions[conn] = nil; -- cgit v1.2.3