aboutsummaryrefslogtreecommitdiffstats
path: root/prosody
diff options
context:
space:
mode:
authorMatthew Wild <mwild1@gmail.com>2012-04-29 02:10:55 +0100
committerMatthew Wild <mwild1@gmail.com>2012-04-29 02:10:55 +0100
commitfe228888c0d51612e8b32adc3f9db91b7c6e8ded (patch)
treee78baabff21e9b6fefaeef4a709098ca30b35922 /prosody
parent9d04baca862bcad5b49ac4ab0b9c3432321150d3 (diff)
parent1ee9f6e09228b268bf3f5dc985d4ba9026a72666 (diff)
downloadprosody-fe228888c0d51612e8b32adc3f9db91b7c6e8ded.tar.gz
prosody-fe228888c0d51612e8b32adc3f9db91b7c6e8ded.zip
Merge 0.9->trunk
Diffstat (limited to 'prosody')
-rwxr-xr-xprosody81
1 files changed, 6 insertions, 75 deletions
diff --git a/prosody b/prosody
index e18b4e61..64021fd3 100755
--- a/prosody
+++ b/prosody
@@ -150,10 +150,14 @@ function sandbox_require()
local curr_env_mt = getmetatable(getfenv(2));
local _realG_mt = getmetatable(_realG);
if curr_env_mt and curr_env_mt.__index and not curr_env_mt.__newindex and _realG_mt then
- local old_newindex
+ local old_newindex, old_index;
old_newindex, _realG_mt.__newindex = _realG_mt.__newindex, curr_env;
+ old_index, _realG_mt.__index = _realG_mt.__index, function (_G, k)
+ return rawget(curr_env, k);
+ end;
local ret = _real_require(...);
_realG_mt.__newindex = old_newindex;
+ _realG_mt.__index = old_index;
return ret;
end
return _real_require(...);
@@ -254,63 +258,6 @@ function init_global_state()
local global_ssl_ctx = certmanager.create_context("*", "server");
prosody.global_ssl_ctx = global_ssl_ctx;
- local cl = require "net.connlisteners";
- function prosody.net_activate_ports(option, listener, default, conntype)
- conntype = conntype or (global_ssl_ctx and "tls") or "tcp";
- local ports_option = option and option.."_ports" or "ports";
- if not cl.get(listener) then return; end
- local ports = config.get("*", "core", ports_option) or default;
- if type(ports) == "number" then ports = {ports} end;
-
- if type(ports) ~= "table" then
- log("error", "core."..ports_option.." is not a table");
- else
- for _, port in ipairs(ports) do
- port = tonumber(port);
- if type(port) ~= "number" then
- log("error", "Non-numeric "..ports_option..": "..tostring(port));
- else
- local ok, errors = cl.start(listener, {
- ssl = conntype == "ssl" and global_ssl_ctx,
- port = port,
- interface = (option and config.get("*", "core", option.."_interface"))
- or cl.get(listener).default_interface
- or config.get("*", "core", "interface"),
- type = conntype
- });
- if not ok then
- for addr, err in pairs(errors) do
- local friendly_message = err;
- if err:match(" in use") then
- if port == 5222 or port == 5223 or port == 5269 then
- friendly_message = "check that Prosody or another XMPP server is "
- .."not already running and using this port";
- elseif port == 80 or port == 81 then
- friendly_message = "check that a HTTP server is not already using "
- .."this port";
- elseif port == 5280 then
- friendly_message = "check that Prosody or a BOSH connection manager "
- .."is not already running";
- else
- friendly_message = "this port is in use by another application";
- end
- elseif err:match("permission") then
- friendly_message = "Prosody does not have sufficient privileges to use this port";
- elseif err == "no ssl context" then
- if not config.get("*", "core", "ssl") then
- friendly_message = "there is no 'ssl' config under Host \"*\" which is "
- .."require for legacy SSL ports";
- else
- friendly_message = "initializing SSL support failed, see previous log entries";
- end
- end
- log("error", "Failed to open server port %d on %s, %s", port, addr, friendly_message);
- end
- end
- end
- end
- end
- end
end
function read_version()
@@ -333,6 +280,7 @@ function load_secondary_libraries()
require "util.xmppstream"
require "core.rostermanager"
require "core.hostmanager"
+ require "core.portmanager"
require "core.modulemanager"
require "core.usermanager"
require "core.sessionmanager"
@@ -359,9 +307,6 @@ function load_secondary_libraries()
if remdebug then remdebug.engine.start() end
]]
- require "net.connlisteners";
- require "net.httpserver";
-
require "util.stanza"
require "util.jid"
end
@@ -374,20 +319,6 @@ function prepare_to_start()
log("info", "Prosody is using the %s backend for connection handling", server.get_backend());
-- Signal to modules that we are ready to start
prosody.events.fire_event("server-starting");
-
- -- start listening on sockets
- if config.get("*", "core", "ports") then
- prosody.net_activate_ports(nil, "multiplex", {5222, 5269});
- if config.get("*", "core", "ssl_ports") then
- prosody.net_activate_ports("ssl", "multiplex", {5223}, "ssl");
- end
- else
- prosody.net_activate_ports("c2s", "xmppclient", {5222});
- prosody.net_activate_ports("s2s", "xmppserver", {5269});
- prosody.net_activate_ports("component", "xmppcomponent", {5347}, "tcp");
- prosody.net_activate_ports("legacy_ssl", "xmppclient", {}, "ssl");
- end
-
prosody.start_time = os.time();
end