--- a/core/modulemanager.lua Wed Aug 27 13:00:04 2014 +0200
+++ b/core/modulemanager.lua Thu Aug 28 09:23:24 2014 +0100
@@ -123,7 +123,7 @@
end
if modulemap[host][module_name] then
- log("warn", "%s is already loaded for %s, so not loading again", module_name, host);
+ log("debug", "%s is already loaded for %s, so not loading again", module_name, host);
return nil, "module-already-loaded";
elseif modulemap["*"][module_name] then
local mod = modulemap["*"][module_name];
--- a/net/http/server.lua Wed Aug 27 13:00:04 2014 +0200
+++ b/net/http/server.lua Thu Aug 28 09:23:24 2014 +0100
@@ -98,7 +98,7 @@
local pending = {};
local waiting = false;
local function process_next()
- if waiting then log("debug", "can't process_next, waiting"); return; end
+ if waiting then return; end -- log("debug", "can't process_next, waiting");
waiting = true;
while sessions[conn] and #pending > 0 do
local request = t_remove(pending);
--- a/plugins/mod_c2s.lua Wed Aug 27 13:00:04 2014 +0200
+++ b/plugins/mod_c2s.lua Thu Aug 28 09:23:24 2014 +0100
@@ -91,7 +91,7 @@
function stream_callbacks.error(session, error, data)
if error == "no-stream" then
- session.log("debug", "Invalid opening stream header");
+ session.log("debug", "Invalid opening stream header (%s)", (data:gsub("^([^\1]+)\1", "{%1}")));
session:close("invalid-namespace");
elseif error == "parse-error" then
(session.log or log)("debug", "Client XML parse error: %s", tostring(data));
--- a/plugins/mod_compression.lua Wed Aug 27 13:00:04 2014 +0200
+++ b/plugins/mod_compression.lua Thu Aug 28 09:23:24 2014 +0100
@@ -147,6 +147,12 @@
end
end);
+module:hook("stanza/http://jabber.org/protocol/compress:failure", function(event)
+ local err = event.stanza:get_child();
+ (event.origin.log or module._log)("warn", "Compression setup failed (%s)", err and err.name or "unknown reason");
+ return true;
+end);
+
module:hook("stanza/http://jabber.org/protocol/compress:compress", function(event)
local session, stanza = event.origin, event.stanza;
--- a/plugins/mod_posix.lua Wed Aug 27 13:00:04 2014 +0200
+++ b/plugins/mod_posix.lua Thu Aug 28 09:23:24 2014 +0100
@@ -80,7 +80,7 @@
if pidfile_handle then
remove_pidfile();
end
- pidfile = module:get_option("pidfile");
+ pidfile = module:get_option_string("pidfile");
if pidfile then
local err;
local mode = stat(pidfile) and "r+" or "w+";
--- a/plugins/mod_s2s/mod_s2s.lua Wed Aug 27 13:00:04 2014 +0200
+++ b/plugins/mod_s2s/mod_s2s.lua Thu Aug 28 09:23:24 2014 +0100
@@ -347,7 +347,9 @@
log("debug", "Sending stream features: %s", tostring(features));
send(features);
end
+ session.notopen = nil;
elseif session.direction == "outgoing" then
+ session.notopen = nil;
-- If we are just using the connection for verifying dialback keys, we won't try and auth it
if not attr.id then error("stream response did not give us a streamid!!!"); end
session.streamid = attr.id;
@@ -381,7 +383,6 @@
end
end
end
- session.notopen = nil;
end
function stream_callbacks.streamclosed(session)
@@ -391,6 +392,7 @@
function stream_callbacks.error(session, error, data)
if error == "no-stream" then
+ session.log("debug", "Invalid opening stream header (%s)", (data:gsub("^([^\1]+)\1", "{%1}")));
session:close("invalid-namespace");
elseif error == "parse-error" then
session.log("debug", "Server-to-server XML parse error: %s", tostring(error));
@@ -501,6 +503,7 @@
function session.reset_stream()
session.notopen = true;
+ session.streamid = nil;
session.stream:reset();
end
--- a/prosodyctl Wed Aug 27 13:00:04 2014 +0200
+++ b/prosodyctl Thu Aug 28 09:23:24 2014 +0100
@@ -220,6 +220,7 @@
["no-such-host"] = "The given hostname does not exist in the config";
["unable-to-save-data"] = "Unable to store, perhaps you don't have permission?";
["no-pidfile"] = "There is no 'pidfile' option in the configuration file, see http://prosody.im/doc/prosodyctl#pidfile for help";
+ ["invalid-pidfile"] = "The 'pidfile' option in the configuration file is not a string, see http://prosody.im/doc/prosodyctl#pidfile for help";
["no-posix"] = "The mod_posix module is not enabled in the Prosody config file, see http://prosody.im/doc/prosodyctl for more info";
["no-such-method"] = "This module has no commands";
["not-running"] = "Prosody is not running";
--- a/util/filters.lua Wed Aug 27 13:00:04 2014 +0200
+++ b/util/filters.lua Thu Aug 28 09:23:24 2014 +0100
@@ -45,6 +45,8 @@
if not filter_list then
filter_list = {};
session.filters[type] = filter_list;
+ elseif filter_list[callback] then
+ return; -- Filter already added
end
priority = priority or 0;
--- a/util/prosodyctl.lua Wed Aug 27 13:00:04 2014 +0200
+++ b/util/prosodyctl.lua Thu Aug 28 09:23:24 2014 +0100
@@ -1,7 +1,7 @@
-- Prosody IM
-- Copyright (C) 2008-2010 Matthew Wild
-- Copyright (C) 2008-2010 Waqas Hussain
---
+--
-- This project is MIT/X11 licensed. Please see the
-- COPYING file in the source package for more information.
--
@@ -146,7 +146,7 @@
if not(provider) or provider.name == "null" then
usermanager.initialize_host(host);
end
-
+
local ok, errmsg = usermanager.create_user(user, password, host);
if not ok then
return false, errmsg;
@@ -162,7 +162,7 @@
if not(provider) or provider.name == "null" then
usermanager.initialize_host(host);
end
-
+
return usermanager.user_exists(user, host);
end
@@ -170,7 +170,7 @@
if not _M.user_exists(params) then
return false, "no-such-user";
end
-
+
return _M.adduser(params);
end
@@ -179,7 +179,7 @@
return false, "no-such-user";
end
local user, host = nodeprep(params.user), nameprep(params.host);
-
+
return usermanager.delete_user(user, host);
end
@@ -189,29 +189,33 @@
return false, "no-pidfile";
end
+ if type(pidfile) ~= "string" then
+ return false, "invalid-pidfile";
+ end
+
local modules_enabled = set.new(config.get("*", "modules_disabled"));
if prosody.platform ~= "posix" or modules_enabled:contains("posix") then
return false, "no-posix";
end
-
+
local file, err = io.open(pidfile, "r+");
if not file then
return false, "pidfile-read-failed", err;
end
-
+
local locked, err = lfs.lock(file, "w");
if locked then
file:close();
return false, "pidfile-not-locked";
end
-
+
local pid = tonumber(file:read("*a"));
file:close();
-
+
if not pid then
return false, "invalid-pid";
end
-
+
return true, pid;
end
@@ -252,10 +256,10 @@
if not ret then
return false, "not-running";
end
-
+
local ok, pid = _M.getpid()
if not ok then return false, pid; end
-
+
signal.kill(pid, signal.SIGTERM);
return true;
end
@@ -268,10 +272,10 @@
if not ret then
return false, "not-running";
end
-
+
local ok, pid = _M.getpid()
if not ok then return false, pid; end
-
+
signal.kill(pid, signal.SIGHUP);
return true;
end
--- a/util/xmppstream.lua Wed Aug 27 13:00:04 2014 +0200
+++ b/util/xmppstream.lua Thu Aug 28 09:23:24 2014 +0100
@@ -109,7 +109,7 @@
end
else
-- Garbage before stream?
- cb_error(session, "no-stream");
+ cb_error(session, "no-stream", tagname);
end
return;
end