Software /
code /
prosody
Changeset
6367:769a3577dd85
Merge 0.9->0.10
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 28 Aug 2014 09:23:24 +0100 |
parents | 6355:c2d144d3f8dd (current diff) 6366:8dee696c33cc (diff) |
children | 6368:bd0c8b361589 6370:3cfbd3f2c658 |
files | core/modulemanager.lua net/http/server.lua plugins/mod_c2s.lua plugins/mod_compression.lua plugins/mod_posix.lua plugins/mod_privacy.lua plugins/mod_s2s/mod_s2s.lua prosodyctl util/filters.lua util/prosodyctl.lua util/xmppstream.lua |
diffstat | 10 files changed, 36 insertions(+), 20 deletions(-) [+] |
line wrap: on
line diff
--- 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