annotate 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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2265
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