Mercurial > prosody-modules
comparison mod_register_json/mod_register_json.lua @ 370:16da8cd69715
mod_register_json: There again, finally found the right way to pass the ports table to be processed correctly.
author | Marco Cirillo <maranda@lightwitch.org> |
---|---|
date | Fri, 22 Apr 2011 01:49:53 +0000 |
parents | 29a8828243ce |
children | ea6641deec12 |
comparison
equal
deleted
inserted
replaced
369:29a8828243ce | 370:16da8cd69715 |
---|---|
7 local jid_prep = require "util.jid".prep; | 7 local jid_prep = require "util.jid".prep; |
8 local jid_split = require "util.jid".split; | 8 local jid_split = require "util.jid".split; |
9 local usermanager = require "core.usermanager"; | 9 local usermanager = require "core.usermanager"; |
10 local b64_decode = require "util.encodings".base64.decode; | 10 local b64_decode = require "util.encodings".base64.decode; |
11 local json_decode = require "util.json".decode; | 11 local json_decode = require "util.json".decode; |
12 local httpserver = require "net.httpserver"; | |
12 local os_time = os.time; | 13 local os_time = os.time; |
13 | 14 |
14 module.host = "*" -- HTTP/BOSH Servlets need to be global. | 15 module.host = "*" -- HTTP/BOSH Servlets need to be global. |
15 | 16 |
16 -- Pick up configuration. | 17 -- Pick up configuration. |
104 end | 105 end |
105 end | 106 end |
106 | 107 |
107 -- Set it up! | 108 -- Set it up! |
108 local function setup() | 109 local function setup() |
109 local port = module:get_option("reg_servlet_port") or 9280; | 110 local ports = module:get_option("reg_servlet_ports") or { 9280 }; |
110 local base_name = module:get_option("reg_servlet_base") or "register_account"; | 111 local port_number, base_name, ssl_table; |
111 local ssl_cert = module:get_option("reg_servlet_sslcert") or false; | 112 for _, opts in ipairs(ports) do |
112 local ssl_key = module:get_option("reg_servlet_sslkey") or false; | 113 if type(opts) == "number" then |
113 if not ssl_cert or not ssl_key then | 114 port_number, base_name = opts, "register_account"; |
114 require "net.httpserver".new_from_config({ port = port }, handle_req, { base = base_name }); | 115 elseif type(opts) == "table" then |
116 port_number, base_name, ssl_table = opts.port or 9280, opts.path or "register_account", opts.ssl or nil; | |
117 elseif type(opts) == "string" then | |
118 base_name, port_number = opts, 9280; | |
119 end | |
120 end | |
121 | |
122 if ssl_table == nil then | |
123 ports = { { port = port_number } }; | |
124 httpserver.new_from_config(ports, handle_req, { base = base_name }); | |
115 else | 125 else |
116 if module:get_option("reg_servlet_port") == nil then port = 9443; end | 126 if port_number == 9280 then port_number = 9443; end |
117 require "net.httpserver".new_from_config({ port = port; ssl = { key = ssl_key, certificate = ssl_cert }; }, handle_req, { base = base_name }); | 127 ports = { { port = port_number, ssl = ssl_table } }; |
128 httpserver.new_from_config(ports, handle_req, { base = base_name }); | |
118 end | 129 end |
119 end | 130 end |
120 | 131 |
121 if prosody.start_time then -- already started | 132 if prosody.start_time then -- already started |
122 setup(); | 133 setup(); |