#!/usr/bin/env lua
--- Prosody IM v0.2
--- Copyright (C) 2008 Matthew Wild
--- Copyright (C) 2008 Waqas Hussain
+-- Prosody IM v0.3
+-- Copyright (C) 2008-2009 Matthew Wild
+-- Copyright (C) 2008-2009 Waqas Hussain
--
--- This program is free software; you can redistribute it and/or
--- modify it under the terms of the GNU General Public License
--- as published by the Free Software Foundation; either version 2
--- of the License, or (at your option) any later version.
---
--- This program is distributed in the hope that it will be useful,
--- but WITHOUT ANY WARRANTY; without even the implied warranty of
--- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
--- GNU General Public License for more details.
---
--- You should have received a copy of the GNU General Public License
--- along with this program; if not, write to the Free Software
--- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+-- This project is MIT/X11 licensed. Please see the
+-- COPYING file in the source package for more information.
--
-- Config here --
do
-- TODO: Check for other formats when we add support for them
-- Use lfs? Make a new conf/ dir?
- local ok, err = config.load((CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
+ local ok, level, err = config.load((CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
if not ok then
- log("error", "Couldn't load config file: %s", err);
- log("info", "Falling back to old config file format...")
- ok, err = pcall(dofile, "lxmppd.cfg");
- if not ok then
- log("error", "Old config format loading failed too: %s", err);
- else
- for _, host in ipairs(_G.config.hosts) do
- config.set(host, "core", "defined", true);
- end
-
- config.set("*", "core", "modules_enabled", _G.config.modules);
- config.set("*", "core", "ssl", _G.config.ssl_ctx);
+ print("");
+ print("**************************");
+ if level == "parser" then
+ print("A problem occured while reading the config file "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
+ local err_line, err_message = tostring(err):match("%[string .-%]:(%d*): (.*)");
+ print("Error"..(err_line and (" on line "..err_line) or "")..": "..(err_message or tostring(err)));
+ print("");
+ elseif level == "file" then
+ print("Prosody was unable to find the configuration file.");
+ print("We looked for: "..(CFG_CONFIGDIR or ".").."/prosody.cfg.lua");
+ print("A sample config file is included in the Prosody download called prosody.cfg.lua.dist");
+ print("Copy or rename it to prosody.cfg.lua and edit as necessary.");
end
+ print("More help on configuring Prosody can be found at http://prosody.im/doc/configure");
+ print("Good luck!");
+ print("**************************");
+ print("");
+ os.exit(1);
end
end
+require "util.dependencies"
+
local server = require "net.server"
-require "util.dependencies"
-- Maps connections to sessions --
sessions = {};
require "util.import"
require "core.xmlhandlers"
require "core.rostermanager"
-require "core.offlinemessage"
require "core.eventmanager"
require "core.hostmanager"
require "core.modulemanager"
if type(port) ~= "number" then
log("error", "Non-numeric "..option..": "..tostring(port));
else
- cl.start(listener, { ssl = global_ssl_ctx, port = port, type = conntype });
+ cl.start(listener, { ssl = conntype ~= "tcp" and global_ssl_ctx, port = port, type = conntype });
end
end
end
end
-do_ports("c2s_ports", "xmppclient", {5222}, "tls");
+do_ports("c2s_ports", "xmppclient", {5222}, (global_ssl_ctx and "tls") or "tcp");
do_ports("s2s_ports", "xmppserver", {5269}, "tcp");
do_ports("legacy_ssl_ports", "xmppclient", {}, "ssl");
if config.get("*", "core", "console_enabled") then
if cl.get("console") then
- cl.start("console")
+ cl.start("console", { interface = config.get("*", "core", "console_interface") or "127.0.0.1" })
else
log("error", "Console is enabled, but the console module appears not to be loaded");
end