view mod_http_hostaliases/mod_http_hostaliases.lua @ 6213:49fad071e644

mod_net_proxy: Use safer util.format for generating description string (thanks tom) It appears that server_event may emit port numbers (src_port() in this case) as strings, rather than integers. This causes string.format() to throw an error. Prosody's util.format is a more forgiving formatter and won't throw an error. The server_event behaviour may be best fixed for the sake of consistency, though.
author Matthew Wild <mwild1@gmail.com>
date Fri, 09 May 2025 10:00:15 +0100
parents 29e3a09275c5
children
line wrap: on
line source

module:set_global();

local host_map = { };

module:wrap_object_event(require "net.http.server"._events, false, function (handlers, event_name, event_data)
	local verb, host, path = event_name:match("^(%w+ )(.-)(/.*)");
	host = host_map[host];
	event_name = verb .. host .. path;
	return handlers(event_name, event_data);
end);

function module.add_host(module)
	local http_host = module:get_option_string("http_host");
	for host in module:get_option_set("http_host_aliases", {}) do
		host_map[host] = http_host;
	end
end