From d90975c195e3ce0f4b7afea2f1fadd9f7d77669c Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Sat, 12 Sep 2015 18:52:39 +0200
Subject: MUC: Break a very long line

---
 plugins/muc/muc.lib.lua | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

(limited to 'plugins')

diff --git a/plugins/muc/muc.lib.lua b/plugins/muc/muc.lib.lua
index 8cf8d882..c32da338 100644
--- a/plugins/muc/muc.lib.lua
+++ b/plugins/muc/muc.lib.lua
@@ -675,8 +675,10 @@ function room_mt:process_form(origin, stanza)
 	if form.attr.type ~= "submit" then origin.send(st.error_reply(stanza, "cancel", "bad-request", "Not a submitted form")); return; end
 
 	local fields = self:get_form_layout(stanza.attr.from):data(form);
-	if fields.FORM_TYPE ~= "http://jabber.org/protocol/muc#roomconfig" then origin.send(st.error_reply(stanza, "cancel", "bad-request", "Form is not of type room configuration")); return; end
-
+	if fields.FORM_TYPE ~= "http://jabber.org/protocol/muc#roomconfig" then
+		origin.send(st.error_reply(stanza, "cancel", "bad-request", "Form is not of type room configuration"));
+		return;
+	end
 
 	local changed = {};
 
-- 
cgit v1.2.3


From 7b18c25101b3af8f0a61d7f0fc2cf4d9028b6252 Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Tue, 15 Sep 2015 17:51:56 +0200
Subject: mod_tls: Fix inhertinance of 'ssl' option from "parent" host to
 subdomain (fixes #511)

---
 plugins/mod_tls.lua | 22 ++++++++++++----------
 1 file changed, 12 insertions(+), 10 deletions(-)

(limited to 'plugins')

diff --git a/plugins/mod_tls.lua b/plugins/mod_tls.lua
index d1138e1c..39c4649e 100644
--- a/plugins/mod_tls.lua
+++ b/plugins/mod_tls.lua
@@ -7,6 +7,7 @@
 --
 
 local create_context = require "core.certmanager".create_context;
+local rawgetopt = require"core.configmanager".rawget;
 local st = require "util.stanza";
 
 local c2s_require_encryption = module:get_option("c2s_require_encryption", module:get_option("require_encryption"));
@@ -36,19 +37,20 @@ local ssl_ctx_c2s, ssl_ctx_s2sout, ssl_ctx_s2sin;
 local ssl_cfg_c2s, ssl_cfg_s2sout, ssl_cfg_s2sin;
 do
 	local NULL, err = {};
-	local global = module:context("*");
-	local parent = module:context(module.host:match("%.(.*)$"));
+	local modhost = module.host;
+	local parent = modhost:match("%.(.*)$");
 
-	local parent_ssl = parent:get_option("ssl");
-	local host_ssl   = module:get_option("ssl", parent_ssl);
+	local global_ssl = rawgetopt("*",     "ssl") or NULL;
+	local parent_ssl = rawgetopt(parent,  "ssl") or NULL;
+	local host_ssl   = rawgetopt(modhost, "ssl") or parent_ssl;
 
-	local global_c2s = global:get_option("c2s_ssl", NULL);
-	local parent_c2s = parent:get_option("c2s_ssl", NULL);
-	local host_c2s   = module:get_option("c2s_ssl", parent_c2s);
+	local global_c2s = rawgetopt("*",     "c2s_ssl") or NULL;
+	local parent_c2s = rawgetopt(parent,  "c2s_ssl") or NULL;
+	local host_c2s   = rawgetopt(modhost, "c2s_ssl") or parent_ssl;
 
-	local global_s2s = global:get_option("s2s_ssl", NULL);
-	local parent_s2s = parent:get_option("s2s_ssl", NULL);
-	local host_s2s   = module:get_option("s2s_ssl", parent_s2s);
+	local global_s2s = rawgetopt("*",     "s2s_ssl") or NULL;
+	local parent_s2s = rawgetopt(parent,  "s2s_ssl") or NULL;
+	local host_s2s   = rawgetopt(modhost, "s2s_ssl") or parent_ssl;
 
 	ssl_ctx_c2s, err, ssl_cfg_c2s = create_context(host.host, "server", host_c2s, host_ssl, global_c2s); -- for incoming client connections
 	if not ssl_ctx_c2s then module:log("error", "Error creating context for c2s: %s", err); end
-- 
cgit v1.2.3


From 461b90b5b4e90f6af1ea42b3836cd4dbda979606 Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Wed, 16 Sep 2015 15:16:51 +0200
Subject: mod_blocklist: Explicitly halt event propagation after returning a
 reply (send returns nil sometimes)

---
 plugins/mod_blocklist.lua | 18 ++++++++++++------
 1 file changed, 12 insertions(+), 6 deletions(-)

(limited to 'plugins')

diff --git a/plugins/mod_blocklist.lua b/plugins/mod_blocklist.lua
index baed6709..8589c1e9 100644
--- a/plugins/mod_blocklist.lua
+++ b/plugins/mod_blocklist.lua
@@ -95,7 +95,8 @@ module:hook("iq-get/self/urn:xmpp:blocking:blocklist", function (event)
 		end
 	end
 	origin.interested_blocklist = true; -- Gets notified about changes
-	return origin.send(reply);
+	origin.send(reply);
+	return true;
 end);
 
 -- Add or remove some jid(s) from the blocklist
@@ -109,7 +110,8 @@ local function edit_blocklist(event)
 	for item in action:childtags("item") do
 		local jid = jid_prep(item.attr.jid);
 		if not jid then
-			return origin.send(st_error_reply(stanza, "modify", "jid-malformed"));
+			origin.send(st_error_reply(stanza, "modify", "jid-malformed"));
+			return true;
 		end
 		item.attr.jid = jid; -- echo back prepped
 		new[jid] = is_contact_subscribed(username, module.host, jid) or false;
@@ -119,7 +121,8 @@ local function edit_blocklist(event)
 
 	if mode and not next(new) then
 		-- <block/> element does not contain at least one <item/> child element
-		return origin.send(st_error_reply(stanza, "modify", "bad-request"));
+		origin.send(st_error_reply(stanza, "modify", "bad-request"));
+		return true;
 	end
 
 	local blocklist = get_blocklist(username);
@@ -141,7 +144,8 @@ local function edit_blocklist(event)
 	if ok then
 		origin.send(st.reply(stanza));
 	else
-		return origin.send(st_error_reply(stanza, "wait", "internal-server-error", err));
+		origin.send(st_error_reply(stanza, "wait", "internal-server-error", err));
+		return true;
 	end
 
 	if mode then
@@ -208,7 +212,8 @@ end
 local function bounce_stanza(event)
 	local origin, stanza = event.origin, event.stanza;
 	if drop_stanza(event) then
-		return origin.send(st_error_reply(stanza, "cancel", "service-unavailable"));
+		origin.send(st_error_reply(stanza, "cancel", "service-unavailable"));
+		return true;
 	end
 end
 
@@ -244,8 +249,9 @@ local function bounce_outgoing(event)
 		return drop_outgoing(event);
 	end
 	if drop_outgoing(event) then
-		return origin.send(st_error_reply(stanza, "cancel", "not-acceptable", "You have blocked this JID")
+		origin.send(st_error_reply(stanza, "cancel", "not-acceptable", "You have blocked this JID")
 			:tag("blocked", { xmlns = "urn:xmpp:blocking:errors" }));
+		return true;
 	end
 end
 
-- 
cgit v1.2.3


From 32bb9cbee2e75029b69367ef3f0d3d76e5dd9f34 Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Wed, 16 Sep 2015 15:18:30 +0200
Subject: mod_offline: Decrease priority of event handlers so 3rd party hooks
 fire first by default

---
 plugins/mod_offline.lua | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'plugins')

diff --git a/plugins/mod_offline.lua b/plugins/mod_offline.lua
index c168711b..08ab8490 100644
--- a/plugins/mod_offline.lua
+++ b/plugins/mod_offline.lua
@@ -30,7 +30,7 @@ module:hook("message/offline/handle", function(event)
 	stanza.attr.stamp, stanza.attr.stamp_legacy = nil, nil;
 
 	return result;
-end);
+end, -1);
 
 module:hook("message/offline/broadcast", function(event)
 	local origin = event.origin;
@@ -48,4 +48,4 @@ module:hook("message/offline/broadcast", function(event)
 	end
 	datamanager.list_store(node, host, "offline", nil);
 	return true;
-end);
+end, -1);
-- 
cgit v1.2.3