diff options
author | Matthew Wild <mwild1@gmail.com> | 2014-08-28 12:05:18 +0100 |
---|---|---|
committer | Matthew Wild <mwild1@gmail.com> | 2014-08-28 12:05:18 +0100 |
commit | 656d194bd1e0022605ab0a5b66da7ee2c5a3a1d3 (patch) | |
tree | f9b41c73e3cda1b1f3ffe63a3921967eea4a20d6 /util | |
parent | bf66f0049f2e7682ed6354388db92a2b25ea67b6 (diff) | |
parent | 878efeecd5030048b33121b05c6cf402f860ca1d (diff) | |
download | prosody-656d194bd1e0022605ab0a5b66da7ee2c5a3a1d3.tar.gz prosody-656d194bd1e0022605ab0a5b66da7ee2c5a3a1d3.zip |
Merge 0.10->trunk
Diffstat (limited to 'util')
-rw-r--r-- | util/filters.lua | 2 | ||||
-rw-r--r-- | util/prosodyctl.lua | 32 | ||||
-rw-r--r-- | util/xmppstream.lua | 4 |
3 files changed, 22 insertions, 16 deletions
diff --git a/util/filters.lua b/util/filters.lua index c2bdca07..427dcb7c 100644 --- a/util/filters.lua +++ b/util/filters.lua @@ -45,6 +45,8 @@ function add_filter(session, type, callback, priority) 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; diff --git a/util/prosodyctl.lua b/util/prosodyctl.lua index d59c163c..cc48d590 100644 --- a/util/prosodyctl.lua +++ b/util/prosodyctl.lua @@ -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 @@ function adduser(params) 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 @@ function user_exists(params) if not(provider) or provider.name == "null" then usermanager.initialize_host(host); end - + return usermanager.user_exists(user, host); end @@ -170,7 +170,7 @@ function passwd(params) if not _M.user_exists(params) then return false, "no-such-user"; end - + return _M.adduser(params); end @@ -179,7 +179,7 @@ function deluser(params) 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 @@ function getpid() 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 @@ function stop() 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 @@ function reload() 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 diff --git a/util/xmppstream.lua b/util/xmppstream.lua index 6982aae3..dede0da9 100644 --- a/util/xmppstream.lua +++ b/util/xmppstream.lua @@ -109,7 +109,7 @@ function new_sax_handlers(session, stream_callbacks, cb_handleprogress) end else -- Garbage before stream? - cb_error(session, "no-stream"); + cb_error(session, "no-stream", tagname); end return; end @@ -249,7 +249,7 @@ function new(session, stream_callbacks, stanza_size_limit) ["xml:lang"] = "en", xmlns = stream_callbacks.default_ns, version = session.version and (session.version > 0 and "1.0" or nil), - id = session.streamid or "", + id = session.streamid, from = from or session.host, to = to, }; if session.stream_attrs then |