X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=plugins%2Fmod_bosh.lua;h=743ebdef437c67ad73cfd8b74bc080dfd59b87c0;hb=58bf4369711eed604ab2a485f7f957e522a05796;hp=5aa8ff34f50075c8b9b090c223235165b8d26b40;hpb=c0d9d5ba59ffc907d583f681b7666749b7cf9a9b;p=prosody.git diff --git a/plugins/mod_bosh.lua b/plugins/mod_bosh.lua index 5aa8ff34..743ebdef 100644 --- a/plugins/mod_bosh.lua +++ b/plugins/mod_bosh.lua @@ -1,6 +1,15 @@ +-- 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 +local hosts = _G.hosts; local lxp = require "lxp"; local init_xmlhandlers = require "core.xmlhandlers" local server = require "net.server"; @@ -127,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 @@ -138,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); @@ -267,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);