873 |
873 |
874 function def_env.host:list() |
874 function def_env.host:list() |
875 local print = self.session.print; |
875 local print = self.session.print; |
876 local i = 0; |
876 local i = 0; |
877 local type; |
877 local type; |
878 for host in values(array.collect(keys(prosody.hosts)):sort()) do |
878 for host, host_session in it.sorted_pairs(prosody.hosts) do |
879 i = i + 1; |
879 i = i + 1; |
880 type = hosts[host].type; |
880 type = host_session.type; |
881 if type == "local" then |
881 if type == "local" then |
882 print(host); |
882 print(host); |
883 else |
883 else |
884 type = module:context(host):get_option_string("component_module", type); |
884 type = module:context(host):get_option_string("component_module", type); |
885 if type ~= "component" then |
885 if type ~= "component" then |
894 def_env.port = {}; |
894 def_env.port = {}; |
895 |
895 |
896 function def_env.port:list() |
896 function def_env.port:list() |
897 local print = self.session.print; |
897 local print = self.session.print; |
898 local services = portmanager.get_active_services().data; |
898 local services = portmanager.get_active_services().data; |
899 local ordered_services, n_ports = {}, 0; |
899 local n_services, n_ports = 0, 0; |
900 for service, interfaces in pairs(services) do |
900 for service, interfaces in it.sorted_pairs(services) do |
901 table.insert(ordered_services, service); |
901 n_services = n_services + 1; |
902 end |
|
903 table.sort(ordered_services); |
|
904 for _, service in ipairs(ordered_services) do |
|
905 local ports_list = {}; |
902 local ports_list = {}; |
906 for interface, ports in pairs(services[service]) do |
903 for interface, ports in pairs(interfaces) do |
907 for port in pairs(ports) do |
904 for port in pairs(ports) do |
908 table.insert(ports_list, "["..interface.."]:"..port); |
905 table.insert(ports_list, "["..interface.."]:"..port); |
909 end |
906 end |
910 end |
907 end |
911 n_ports = n_ports + #ports_list; |
908 n_ports = n_ports + #ports_list; |
912 print(service..": "..table.concat(ports_list, ", ")); |
909 print(service..": "..table.concat(ports_list, ", ")); |
913 end |
910 end |
914 return true, #ordered_services.." services listening on "..n_ports.." ports"; |
911 return true, n_services.." services listening on "..n_ports.." ports"; |
915 end |
912 end |
916 |
913 |
917 function def_env.port:close(close_port, close_interface) |
914 function def_env.port:close(close_port, close_interface) |
918 close_port = assert(tonumber(close_port), "Invalid port number"); |
915 close_port = assert(tonumber(close_port), "Invalid port number"); |
919 local n_closed = 0; |
916 local n_closed = 0; |