mod_register_json/mod_register_json.lua
changeset 588 36b3ecebdc7e
parent 586 1004d7176be2
child 590 7df0d5c8abfd
equal deleted inserted replaced
586:1004d7176be2 588:36b3ecebdc7e
   111 		end
   111 		end
   112 	end
   112 	end
   113 end
   113 end
   114 
   114 
   115 -- Set it up!
   115 -- Set it up!
   116 function cleanup() -- it could be better if module:hook("module-unloaded", ...) actually worked.
   116 function regj_cleanup() -- it could be better if module:hook("module-unloaded", ...) actually worked.
   117 	module:log("debug", "Cleaning up handlers and stuff as module is being unloaded.")
   117 	module:log("debug", "Cleaning up handlers and stuff as module is being unloaded.")
   118 	for _, options in ipairs(ports) do
   118 	for _, options in ipairs(ports) do
   119 		if options.port then
   119 		if options.port then
   120 			httpserver.new.http_servers[options.port].handlers[options.path or "register_account"] = nil
   120 			httpserver.new.http_servers[options.port].handlers[options.path or "register_account"] = nil
   121 		end
   121 		end
   122 	end
   122 	end
   123 
   123 
   124 	-- if there are no handlers left clean and close the socket, doesn't work with server_event
   124 	-- if there are no handlers left clean and close the socket, doesn't work with server_event
   125 	local event = module:get_option_boolen("use_libevent", false)
   125 	local event = require "core.configmanager".get("*", "core", "use_libevent");
   126 
   126 
   127 	if not event then
   127 	if not event then
   128 		for _, options in ipairs(ports) do
   128 		for _, options in ipairs(ports) do
   129 			if options.port and not next(httpserver.new.http_servers[options.port].handlers) then
   129 			if options.port and not next(httpserver.new.http_servers[options.port].handlers) then
   130 				httpserver.new.http_servers[options.port] = nil
   130 				httpserver.new.http_servers[options.port] = nil
   135 				else if server.getserver("*", options.port) then server.removeserver("*", options.port) end end
   135 				else if server.getserver("*", options.port) then server.removeserver("*", options.port) end end
   136 			end
   136 			end
   137 		end
   137 		end
   138 	end
   138 	end
   139 
   139 
   140 	prosody.events.remove_handler("module-unloaded", cleanup)
   140 	prosody.events.remove_handler("module-unloaded", regj_cleanup)
   141 end
   141 end
   142 
   142 
   143 function setup()
   143 function setup()
   144 	for id, options in ipairs(ports) do 
   144 	for id, options in ipairs(ports) do 
   145 		if not options.port then 
   145 		if not options.port then 
   146 			if not options.ssl then ports[id].port = 9280
   146 			if not options.ssl then ports[id].port = 9280
   147 			else ports[id].port = 9443 end
   147 			else ports[id].port = 9443 end
   148 		elseif options.port == 9280 and options.ssl then ports[id].port = 9443 end end
   148 		elseif options.port == 9280 and options.ssl then ports[id].port = 9443 end end
   149 	httpserver.new_from_config(ports, handle_req, { base = "register_account" })
   149 	httpserver.new_from_config(ports, handle_req, { base = "register_account" })
   150 	prosody.events.add_handler("module-unloaded", cleanup)
   150 	prosody.events.add_handler("module-unloaded", regj_cleanup)
   151 end
   151 end
   152 
   152 
   153 if prosody.start_time then -- already started
   153 if prosody.start_time then -- already started
   154 	setup()
   154 	setup()
   155 else
   155 else