diff options
-rw-r--r-- | core/s2smanager.lua | 4 | ||||
-rw-r--r-- | util/datamanager.lua | 4 | ||||
-rw-r--r-- | util/dependencies.lua | 28 |
3 files changed, 31 insertions, 5 deletions
diff --git a/core/s2smanager.lua b/core/s2smanager.lua index 4c61eaa3..20d932e8 100644 --- a/core/s2smanager.lua +++ b/core/s2smanager.lua @@ -79,6 +79,10 @@ local function bounce_sendq(session) end function send_to_host(from_host, to_host, data) + if not hosts[from_host] then + log("warn", "Attempt to send stanza from %s - a host we don't serve", from_host); + return false; + end local host = hosts[from_host].s2sout[to_host]; if host then -- We have a connection to this host already diff --git a/util/datamanager.lua b/util/datamanager.lua index 4d07d6cc..bfd69ebf 100644 --- a/util/datamanager.lua +++ b/util/datamanager.lua @@ -15,13 +15,13 @@ local loadfile, setfenv, pcall = loadfile, setfenv, pcall; local log = require "util.logger".init("datamanager"); local io_open = io.open; local os_remove = os.remove; -local io_popen = io.popen; local tostring, tonumber = tostring, tonumber; local error = error; local next = next; local t_insert = table.insert; local append = require "util.serialization".append; local path_separator = "/"; if os.getenv("WINDIR") then path_separator = "\\" end +local lfs_mkdir = require "lfs".mkdir; module "datamanager" @@ -43,7 +43,7 @@ local _mkdir = {}; local function mkdir(path) path = path:gsub("/", path_separator); -- TODO as an optimization, do this during path creation rather than here if not _mkdir[path] then - local x = io_popen("mkdir \""..path.."\" 2>&1"):read("*a"); + lfs_mkdir(path); _mkdir[path] = true; end return path; diff --git a/util/dependencies.lua b/util/dependencies.lua index 5b07072f..6decfba5 100644 --- a/util/dependencies.lua +++ b/util/dependencies.lua @@ -30,24 +30,46 @@ end local lxp = softreq "lxp" if not lxp then - missingdep("luaexpat", { ["Ubuntu 8.04 (Hardy)"] = "sudo apt-get install liblua5.1-expat0"; ["luarocks"] = "luarocks install luaexpat"; }); + missingdep("luaexpat", { + ["Debian/Ubuntu"] = "sudo apt-get install liblua5.1-expat0"; + ["luarocks"] = "luarocks install luaexpat"; + ["Source"] = "http://www.keplerproject.org/luaexpat/"; + }); fatal = true; end local socket = softreq "socket" if not socket then - missingdep("luasocket", { ["Ubuntu 8.04 (Hardy)"] = "sudo apt-get install liblua5.1-socket2"; ["luarocks"] = "luarocks install luasocket"; }); + missingdep("luasocket", { + ["Debian/Ubuntu"] = "sudo apt-get install liblua5.1-socket2"; + ["luarocks"] = "luarocks install luasocket"; + ["Source"] = "http://www.tecgraf.puc-rio.br/~diego/professional/luasocket/"; + }); fatal = true; end +local lfs, err = softreq "lfs" +if not lfs then + missingdep("luafilesystem", { + ["luarocks"] = "luarocks install luafilesystem"; + ["Debian/Ubuntu"] = "sudo apt-get install liblua5.1-luafilesystem0"; + ["Source"] = "http://www.keplerproject.org/luafilesystem/"; + }); + fatal = true; +end + local ssl = softreq "ssl" if not ssl then if config.get("*", "core", "run_without_ssl") then log("warn", "Running without SSL support because run_without_ssl is defined in the config"); else - missingdep("LuaSec", { ["Source"] = "http://www.inf.puc-rio.br/~brunoos/luasec/" }, "SSL/TLS support will not be available"); + missingdep("LuaSec", { + ["Debian/Ubuntu"] = "http://prosody.im/download/start#debian_and_ubuntu"; + ["luarocks"] = "luarocks install luasec"; + ["Source"] = "http://www.inf.puc-rio.br/~brunoos/luasec/"; + }, "SSL/TLS support will not be available"); end end |