Changeset

8253:3a6f5b0f56f0

Merge 0.10->trunk
author Kim Alvefur <zash@zash.se>
date Thu, 21 Sep 2017 02:36:28 +0200
parents 8246:ea2667fc6781 (current diff) 8252:63e505578d4f (diff)
children 8268:e21d82551e05
files core/hostmanager.lua prosodyctl
diffstat 3 files changed, 31 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/core/hostmanager.lua	Sun Sep 17 13:33:38 2017 -0400
+++ b/core/hostmanager.lua	Thu Sep 21 02:36:28 2017 +0200
@@ -91,7 +91,7 @@
 		host_session.type = "component";
 	end
 	hosts[host] = host_session;
-	if not host:match("[@/]") then
+	if not host_config.disco_hidden and not host:match("[@/]") then
 		disco_items:set(host:match("%.(.*)") or "*", host, host_config.name or true);
 	end
 	for option_name in pairs(host_config) do
--- a/plugins/mod_mam/mod_mam.lua	Sun Sep 17 13:33:38 2017 -0400
+++ b/plugins/mod_mam/mod_mam.lua	Thu Sep 21 02:36:28 2017 +0200
@@ -67,20 +67,18 @@
 module:hook("iq/self/"..xmlns_mam..":prefs", function(event)
 	local origin, stanza = event.origin, event.stanza;
 	local user = origin.username;
-	if stanza.attr.type == "get" then
-		local prefs = prefs_to_stanza(get_prefs(user));
-		local reply = st.reply(stanza):add_child(prefs);
-		origin.send(reply);
-	else -- type == "set"
+	if stanza.attr.type == "set" then
 		local new_prefs = stanza:get_child("prefs", xmlns_mam);
 		local prefs = prefs_from_stanza(new_prefs);
 		local ok, err = set_prefs(user, prefs);
 		if not ok then
 			origin.send(st.error_reply(stanza, "cancel", "internal-server-error", "Error storing preferences: "..tostring(err)));
-		else
-			origin.send(st.reply(stanza));
+			return true;
 		end
 	end
+	local prefs = prefs_to_stanza(get_prefs(user));
+	local reply = st.reply(stanza):add_child(prefs);
+	origin.send(reply);
 	return true;
 end);
 
@@ -294,6 +292,7 @@
 			end
 		end);
 		if #clone_for_storage.tags == 0 then
+			log("debug", "Not archiving stanza: %s (empty when stripped)", stanza:top_tag());
 			return;
 		end
 	else
--- a/prosodyctl	Sun Sep 17 13:33:38 2017 -0400
+++ b/prosodyctl	Thu Sep 21 02:36:28 2017 +0200
@@ -868,8 +868,22 @@
 	while arg[1] and prosody.hosts[ arg[1] ] do
 		table.insert(hostnames, table.remove(arg, 1));
 	end
+	if hostnames[1] == nil then
+		local domains = os.getenv"RENEWED_DOMAINS"; -- Set if invoked via certbot
+		if domains then
+			for host in domains:gmatch("%S+") do
+				table.insert(hostnames, host);
+			end
+		else
+			for host in pairs(prosody.hosts) do
+				if host ~= "*" and config.get(host, "enabled") ~= false then
+					table.insert(hostnames, host);
+				end
+			end
+		end
+	end
 	if not arg[1] or arg[1] == "--help" then -- Probably forgot the path
-		show_usage("cert import HOSTNAME [HOSTNAME+] /path/to/certs [/other/paths/]+",
+		show_usage("cert import [HOSTNAME+] /path/to/certs [/other/paths/]+",
 			"Copies certificates to "..cert_basedir);
 		return 1;
 	end
@@ -930,13 +944,15 @@
 		end
 		local subcmd = table.remove(arg, 1);
 		if type(cert_commands[subcmd]) == "function" then
-			if not arg[1] then
-				show_message"You need to supply at least one hostname"
-				arg = { "--help" };
-			end
-			if arg[1] ~= "--help" and not hosts[arg[1]] then
-				show_message(error_messages["no-such-host"]);
-				return 1;
+			if subcmd ~= "import" then -- hostnames are optional for import
+				if not arg[1] then
+					show_message"You need to supply at least one hostname"
+					arg = { "--help" };
+				end
+				if arg[1] ~= "--help" and not hosts[arg[1]] then
+					show_message(error_messages["no-such-host"]);
+					return 1;
+				end
 			end
 			return cert_commands[subcmd](arg);
 		elseif subcmd == "check" then