Merge 0.9->0.10
[prosody.git] / plugins / mod_admin_telnet.lua
index 6a5f87d41f49f6c18ac70498ed15172fef0e3c1f..b77a1f564fb2d02127ac0aff35d44ae8e5f2a9df 100644 (file)
@@ -282,6 +282,8 @@ end
 -- 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()
@@ -512,6 +514,9 @@ local function session_flags(session, line)
        if session.ip and session.ip:match(":") then
                line[#line+1] = "(IPv6)";
        end
+       if session.remote then
+               line[#line+1] = "(remote)";
+       end
        return table.concat(line, " ");
 end
 
@@ -1090,6 +1095,33 @@ function def_env.dns:cache()
        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)