From b18ab54899f747eed03c575778b010000f1f9e69 Mon Sep 17 00:00:00 2001 From: Matthew Wild Date: Sat, 5 Apr 2014 15:05:40 +0100 Subject: mod_admin_telnet: muc:*: Fix nil index error when a room JID is passed with a non-existent host --- plugins/mod_admin_telnet.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/plugins/mod_admin_telnet.lua b/plugins/mod_admin_telnet.lua index 2572e982..6f02f030 100644 --- a/plugins/mod_admin_telnet.lua +++ b/plugins/mod_admin_telnet.lua @@ -942,6 +942,9 @@ end function def_env.muc:create(room_jid) local room, host = check_muc(room_jid); + if not room_name then + return room_name, host; + end if not room then return nil, host end if hosts[host].modules.muc.rooms[room_jid] then return nil, "Room exists already" end return hosts[host].modules.muc.create_room(room_jid); @@ -949,6 +952,9 @@ end function def_env.muc:room(room_jid) local room_name, host = check_muc(room_jid); + if not room_name then + return room_name, host; + end local room_obj = hosts[host].modules.muc.rooms[room_jid]; if not room_obj then return nil, "No such room: "..room_jid; -- cgit v1.2.3 From afd077b62f4e9f4cd08c72ee164155a29d3f0b50 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Tue, 8 Apr 2014 19:23:11 +0200 Subject: mod_storage_sql2: Build counter query without ORDER BY clause --- plugins/mod_storage_sql2.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/mod_storage_sql2.lua b/plugins/mod_storage_sql2.lua index 7a2ec4a7..7414e5ed 100644 --- a/plugins/mod_storage_sql2.lua +++ b/plugins/mod_storage_sql2.lua @@ -289,7 +289,7 @@ function archive_store:find(username, query) -- Total matching if query.total then - local stats = engine:select(sql_query:gsub("^(SELECT).-(FROM)", "%1 COUNT(*) %2"):format(t_concat(where, " AND "), "DESC", ""), unpack(args)); + local stats = engine:select("SELECT COUNT(*) FROM `prosodyarchive` WHERE " .. t_concat(where, " AND "), unpack(args)); if stats then local _total = stats() total = _total and _total[1]; -- cgit v1.2.3 From 32b9b7ff472476c74c5e0d83b8712066b8de0d39 Mon Sep 17 00:00:00 2001 From: Waqas Hussain Date: Wed, 9 Apr 2014 14:01:02 -0400 Subject: util.dependencies: Check for Lua 5.1. We don't currently support any other versions. LuaJIT identifies as 5.1. --- util/dependencies.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/util/dependencies.lua b/util/dependencies.lua index e55b2405..4d50cf63 100644 --- a/util/dependencies.lua +++ b/util/dependencies.lua @@ -49,6 +49,14 @@ package.preload["util.ztact"] = function () end; function check_dependencies() + if _VERSION ~= "Lua 5.1" then + print "***********************************" + print("Unsupported Lua version: ".._VERSION); + print("Only Lua 5.1 is supported."); + print "***********************************" + return false; + end + local fatal; local lxp = softreq "lxp" -- cgit v1.2.3 From 1f74845db7945a874ef308a9fe32edce4b2ed7fc Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Wed, 9 Apr 2014 20:46:39 +0200 Subject: prosody: Check dependencies later in the startup sequence --- prosody | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/prosody b/prosody index ee2baca5..446dbfb7 100755 --- a/prosody +++ b/prosody @@ -49,9 +49,6 @@ _G.prosody = prosody; -- Check dependencies local dependencies = require "util.dependencies"; -if not dependencies.check_dependencies() then - os.exit(1); -end -- Load the config-parsing module config = require "core.configmanager" @@ -116,6 +113,12 @@ function read_config() end end +function check_dependencies() + if not dependencies.check_dependencies() then + os.exit(1); + end +end + function load_libraries() -- Load socket framework server = require "net.server" @@ -388,6 +391,7 @@ init_logging(); sanity_check(); sandbox_require(); set_function_metatable(); +check_dependencies(); load_libraries(); init_global_state(); read_version(); -- cgit v1.2.3 From bd5c7793919f236c68a82b9a1045d0348e359c84 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Thu, 10 Apr 2014 00:23:35 +0200 Subject: mod_posix: Remove compat code for 0.5 --- plugins/mod_posix.lua | 8 -------- 1 file changed, 8 deletions(-) diff --git a/plugins/mod_posix.lua b/plugins/mod_posix.lua index 69542c96..89d6d2b6 100644 --- a/plugins/mod_posix.lua +++ b/plugins/mod_posix.lua @@ -129,14 +129,6 @@ end require "core.loggingmanager".register_sink_type("syslog", syslog_sink_maker); local daemonize = module:get_option("daemonize", prosody.installed); -if daemonize == nil then - local no_daemonize = module:get_option("no_daemonize"); --COMPAT w/ 0.5 - daemonize = not no_daemonize; - if no_daemonize ~= nil then - module:log("warn", "The 'no_daemonize' option is now replaced by 'daemonize'"); - module:log("warn", "Update your config from 'no_daemonize = %s' to 'daemonize = %s'", tostring(no_daemonize), tostring(daemonize)); - end -end local function remove_log_sinks() local lm = require "core.loggingmanager"; -- cgit v1.2.3 From 5d027d7f71fb0410b9c1a4ad46d94aaebb87c645 Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Thu, 10 Apr 2014 00:24:29 +0200 Subject: prosodyctl, util.prosodyctl: Update to reflect that mod_posix gets loaded by default on posix platforms --- prosodyctl | 6 +++++- util/prosodyctl.lua | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/prosodyctl b/prosodyctl index c3adad4d..00aeac40 100755 --- a/prosodyctl +++ b/prosodyctl @@ -414,7 +414,11 @@ function commands.start(arg) local ok, ret = prosodyctl.start(); if ok then - if config.get("*", "daemonize") ~= false then + local daemonize = config.get("*", "daemonize"); + if daemonize == nil then + daemonize = prosody.installed; + end + if daemonize then local i=1; while true do local ok, running = prosodyctl.isrunning(); diff --git a/util/prosodyctl.lua b/util/prosodyctl.lua index fe862114..d59c163c 100644 --- a/util/prosodyctl.lua +++ b/util/prosodyctl.lua @@ -189,8 +189,8 @@ function getpid() return false, "no-pidfile"; end - local modules_enabled = set.new(config.get("*", "modules_enabled")); - if not modules_enabled:contains("posix") then + local modules_enabled = set.new(config.get("*", "modules_disabled")); + if prosody.platform ~= "posix" or modules_enabled:contains("posix") then return false, "no-posix"; end -- cgit v1.2.3 From e06966ee436e4d461b03aaf8691fe76dcd6d588b Mon Sep 17 00:00:00 2001 From: Kim Alvefur Date: Thu, 10 Apr 2014 13:13:07 +0200 Subject: mod_c2s, mod_s2s, mod_component, util.xmppstream: Move all session:open_stream() functions to util.xmppstream --- plugins/mod_c2s.lua | 14 -------------- plugins/mod_component.lua | 4 +--- plugins/mod_s2s/mod_s2s.lua | 20 -------------------- util/xmppstream.lua | 16 ++++++++++++++++ 4 files changed, 17 insertions(+), 37 deletions(-) diff --git a/plugins/mod_c2s.lua b/plugins/mod_c2s.lua index 7a8af406..f0cdd7fb 100644 --- a/plugins/mod_c2s.lua +++ b/plugins/mod_c2s.lua @@ -174,19 +174,6 @@ local function session_close(session, reason) end end -local function session_open_stream(session) - local attr = { - ["xmlns:stream"] = 'http://etherx.jabber.org/streams', - xmlns = stream_callbacks.default_ns, - version = "1.0", - ["xml:lang"] = 'en', - id = session.streamid or "", - from = session.host - }; - session.send(""); - session.send(st.stanza("stream:stream", attr):top_tag()); -end - module:hook_global("user-deleted", function(event) local username, host = event.username, event.host; local user = hosts[host].sessions[username]; @@ -234,7 +221,6 @@ function listener.onconnect(conn) conn:setoption("keepalive", opt_keepalives); end - session.open_stream = session_open_stream; session.close = session_close; local stream = new_xmpp_stream(session, stream_callbacks); diff --git a/plugins/mod_component.lua b/plugins/mod_component.lua index 1497b12f..297609d8 100644 --- a/plugins/mod_component.lua +++ b/plugins/mod_component.lua @@ -177,9 +177,7 @@ function stream_callbacks.streamopened(session, attr) session.streamid = uuid_gen(); session.notopen = nil; -- Return stream header - session.send(""); - session.send(st.stanza("stream:stream", { xmlns=xmlns_component, - ["xmlns:stream"]='http://etherx.jabber.org/streams', id=session.streamid, from=session.host }):top_tag()); + session:open_stream(); end function stream_callbacks.streamclosed(session) diff --git a/plugins/mod_s2s/mod_s2s.lua b/plugins/mod_s2s/mod_s2s.lua index 5531ca3e..d27f50af 100644 --- a/plugins/mod_s2s/mod_s2s.lua +++ b/plugins/mod_s2s/mod_s2s.lua @@ -510,24 +510,6 @@ local function session_close(session, reason, remote_reason) end end -function session_open_stream(session, from, to) - local attr = { - ["xmlns:stream"] = 'http://etherx.jabber.org/streams', - xmlns = 'jabber:server', - version = session.version and (session.version > 0 and "1.0" or nil), - ["xml:lang"] = 'en', - id = session.streamid, - from = from, to = to, - } - if not from or (hosts[from] and hosts[from].modules.dialback) then - attr["xmlns:db"] = 'jabber:server:dialback'; - end - - session.sends2s(""); - session.sends2s(st.stanza("stream:stream", attr):top_tag()); - return true; -end - -- Session initialization logic shared by incoming and outgoing local function initialize_session(session) local stream = new_xmpp_stream(session, stream_callbacks); @@ -540,8 +522,6 @@ local function initialize_session(session) session.stream:reset(); end - session.open_stream = session_open_stream; - local filter = session.filter; function session.data(data) data = filter("bytes/in", data); diff --git a/util/xmppstream.lua b/util/xmppstream.lua index 586ad5f9..1e65919b 100644 --- a/util/xmppstream.lua +++ b/util/xmppstream.lua @@ -241,6 +241,22 @@ function new(session, stream_callbacks, stanza_size_limit) local parser = new_parser(handlers, ns_separator, false); local parse = parser.parse; + function session.open_stream(session, from, to) + local send = session.sends2s or session.send; + + local attr = { + ["xmlns:stream"] = "http://etherx.jabber.org/streams", + ["xml:lang"] = "en", + xmlns = stream_callbacks.default_ns, + version = session.version and (session.version > 0 and "1.0" or nil), + id = session.streamid or "", + from = from or session.host, to = to, + }; + send(""); + send(st.stanza("stream:stream", attr):top_tag()); + return true; + end + return { reset = function () parser = new_parser(handlers, ns_separator, false); -- cgit v1.2.3