mod_http_hostaliases/mod_http_hostaliases.lua
author Matthew Wild <mwild1@gmail.com>
Fri, 23 Sep 2022 22:41:15 +0100
changeset 5058 62480053c87b
parent 2269 29e3a09275c5
permissions -rw-r--r--
mod_cloud_notify_encrypted: Additional debug logging when enabling/skipping
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2269
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     1
module:set_global();
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     2
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     3
local host_map = { };
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     4
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     5
module:wrap_object_event(require "net.http.server"._events, false, function (handlers, event_name, event_data)
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     6
	local verb, host, path = event_name:match("^(%w+ )(.-)(/.*)");
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     7
	host = host_map[host];
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     8
	event_name = verb .. host .. path;
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
     9
	return handlers(event_name, event_data);
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    10
end);
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    12
function module.add_host(module)
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    13
	local http_host = module:get_option_string("http_host");
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
	for host in module:get_option_set("http_host_aliases", {}) do
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    15
		host_map[host] = http_host;
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    16
	end
29e3a09275c5 mod_http_hostaliases: Give HTTP hosts additional aliases
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
end