X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=core%2Fportmanager.lua;h=4c13f1ad6b1c4f07982839d43d5fa678b96ce441;hb=a7cfce449708f1619f15089b39996b2013b075d1;hp=7427a8eb05b2893ad95da30bc97a27f4811fe0cb;hpb=8dbb01bc7e7cb230551d9c315c95a0e82c0929dc;p=prosody.git diff --git a/core/portmanager.lua b/core/portmanager.lua index 7427a8eb..4c13f1ad 100644 --- a/core/portmanager.lua +++ b/core/portmanager.lua @@ -1,6 +1,7 @@ local config = require "core.configmanager"; local certmanager = require "core.certmanager"; local server = require "net.server"; +local socket = require "socket"; local log = require "util.logger".init("portmanager"); local multitable = require "util.multitable"; @@ -19,7 +20,7 @@ module "portmanager"; local default_interfaces = { "*" }; local default_local_interfaces = { "127.0.0.1" }; -if config.get("*", "use_ipv6") then +if socket.tcp6 and config.get("*", "use_ipv6") ~= false then table.insert(default_interfaces, "::"); table.insert(default_local_interfaces, "::1"); end @@ -89,11 +90,12 @@ function activate(service_name) or default_interfaces bind_interfaces = set.new(type(bind_interfaces)~="table" and {bind_interfaces} or bind_interfaces); - local bind_ports = set.new(config.get("*", config_prefix.."ports") + local bind_ports = config.get("*", config_prefix.."ports") or service_info.default_ports or {service_info.default_port or listener.default_port -- COMPAT w/pre-0.9 - }); + } + bind_ports = set.new(type(bind_ports) ~= "table" and { bind_ports } or bind_ports ); local mode, ssl = listener.default_mode or "*a";