Diff

plugins/mod_admin_telnet.lua @ 6987:06696882d972

mod_admin_telnet: Add http:list() command to get info about current HTTP endpoints on the server
author Matthew Wild <mwild1@gmail.com>
date Thu, 10 Dec 2015 18:00:08 +0000
parent 6927:566e1cfcb814
child 6988:329d5fb8a9d3
child 7031:89221daefae9
line wrap: on
line diff
--- a/plugins/mod_admin_telnet.lua	Thu Dec 10 17:58:52 2015 +0000
+++ b/plugins/mod_admin_telnet.lua	Thu Dec 10 18:00:08 2015 +0000
@@ -282,6 +282,8 @@
 -- Session environment --
 -- Anything in def_env will be accessible within the session as a global variable
 
+--luacheck: ignore 212/self
+
 def_env.server = {};
 
 function def_env.server:insane_reload()
@@ -1093,6 +1095,33 @@
 	return true, "Cache:\n"..tostring(dns.cache())
 end
 
+def_env.http = {};
+
+function def_env.http:list()
+	local print = self.session.print;
+
+	for host in pairs(prosody.hosts) do
+		local http_apps = modulemanager.get_items("http-provider", host);
+		if #http_apps > 0 then
+			local http_host = module:context(host):get_option("http_host");
+			print("HTTP endpoints on "..host..(http_host and (" (using "..http_host.."):") or ":"));
+			for _, provider in ipairs(http_apps) do
+				local url = module:context(host):http_url(provider.name);
+				print("", url);
+			end
+			print("");
+		end
+	end
+
+	local default_host = module:get_option("http_default_host");
+	if not default_host then
+		print("HTTP requests to unknown hosts will return 404 Not Found");
+	else
+		print("HTTP requests to unknown hosts will be handled by "..default_host);
+	end
+	return true;
+end
+
 -------------
 
 function printbanner(session)