net.httpserver: Allow modules registering to provide more than just a default path when using httpserver.new_from_config

Sat, 03 Oct 2009 00:54:58 +0100

author
Matthew Wild <mwild1@gmail.com>
date
Sat, 03 Oct 2009 00:54:58 +0100
changeset 1868
36e1238db2f2
parent 1867
57446ab8806f
child 1869
7456bb2a3458

net.httpserver: Allow modules registering to provide more than just a default path when using httpserver.new_from_config

net/httpserver.lua file | annotate | diff | comparison | revisions
--- a/net/httpserver.lua	Fri Oct 02 22:37:44 2009 +0100
+++ b/net/httpserver.lua	Sat Oct 03 00:54:58 2009 +0100
@@ -252,13 +252,23 @@
 	default_handler = handler;
 end
 
-function new_from_config(ports, default_base, handle_request)
+function new_from_config(ports, handle_request, default_options)
+	if type(handle_request) == "string" then -- COMPAT with old plugins
+		log("warn", "Old syntax of httpserver.new_from_config being used to register %s", handle_request);
+		handle_request, default_options = default_options, { base = handle_request };
+	end
 	for _, options in ipairs(ports) do
-		local port, base, ssl, interface = 5280, default_base, false, nil;
+		local port = default_options.port or 5280;
+		local base = default_options.base;
+		local ssl = default_options.ssl or false;
+		local interface = default_options.interface;
 		if type(options) == "number" then
 			port = options;
 		elseif type(options) == "table" then
-			port, base, ssl, interface = options.port or 5280, options.path or default_base, options.ssl or false, options.interface;
+			port = options.port or port;
+			base = options.path or base;
+			ssl = options.ssl or ssl;
+			interface = options.interface or interface;
 		elseif type(options) == "string" then
 			base = options;
 		end

mercurial