Merge with 0.5
[prosody.git] / plugins / mod_bosh.lua
index 46e9a95f6e466073b4ba04c7c7fbdb4628d067c2..743ebdef437c67ad73cfd8b74bc080dfd59b87c0 100644 (file)
@@ -1,3 +1,11 @@
+-- Prosody IM
+-- Copyright (C) 2008-2009 Matthew Wild
+-- Copyright (C) 2008-2009 Waqas Hussain
+-- 
+-- This project is MIT/X11 licensed. Please see the
+-- COPYING file in the source package for more information.
+--
+
 
 module.host = "*" -- Global module
 
@@ -128,8 +136,8 @@ function stream_callbacks.streamopened(request, attr)
                if not hosts[attr.to] then
                        -- Unknown host
                        log("debug", "BOSH client tried to connect to unknown host: %s", tostring(attr.to));
-                       session_close_reply.attr.condition = "host-unknown";
-                       request:send{ headers = default_headers, body = tostring(session_close_reply) };
+                       session_close_reply.body.attr.condition = "host-unknown";
+                       request:send(session_close_reply);
                        request.notopen = nil
                        return;
                end
@@ -139,7 +147,7 @@ function stream_callbacks.streamopened(request, attr)
                local session = { type = "c2s_unauthed", conn = {}, sid = sid, rid = attr.rid, host = attr.to, bosh_version = attr.ver, bosh_wait = attr.wait, streamid = sid, 
                                                bosh_hold = BOSH_DEFAULT_HOLD, bosh_max_inactive = BOSH_DEFAULT_INACTIVITY,
                                                requests = { }, send_buffer = {}, reset_stream = bosh_reset_stream, close = bosh_close_stream, 
-                                               dispatch_stanza = core_process_stanza, log = logger.init("bosh"..sid) };
+                                               dispatch_stanza = core_process_stanza, log = logger.init("bosh"..sid), secure = request.secure };
                sessions[sid] = session;
                
                log("info", "New BOSH session, assigned it sid '%s'", sid);
@@ -268,16 +276,6 @@ function on_timer()
 end
 
 local ports = config.get(module.host, "core", "bosh_ports") or { 5280 };
-for _, options in ipairs(ports) do
-       local port, base, ssl, interface = 5280, "http-bind", false, nil;
-       if type(options) == "number" then
-               port = options;
-       elseif type(options) == "table" then
-               port, base, ssl, interface = options.port or 5280, options.path or "http-bind", options.ssl or false, options.interface;
-       elseif type(options) == "string" then
-               base = options;
-       end
-       httpserver.new{ port = port, base = base, handler = handle_request, ssl = ssl }
-end
+httpserver.new_from_config(ports, "http-bind", handle_request);
 
 server.addtimer(on_timer);