diff options
-rw-r--r-- | etc/inc/interfaces.inc | 8 | ||||
-rw-r--r-- | etc/inc/unbound.inc | 17 |
2 files changed, 19 insertions, 6 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index b2912b7..e479c22 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -4795,6 +4795,10 @@ function ip_in_interface_alias_subnet($interface, $ipalias) { } function get_interface_ip($interface = "wan") { + // if we get passed an IP for some reason, return the IP. + if (is_ipaddr($interface)) + return $interface; + $realif = get_failover_interface($interface); if (!$realif) { if (strstr($interface, "_vip")) @@ -4813,6 +4817,10 @@ function get_interface_ip($interface = "wan") { function get_interface_ipv6($interface = "wan", $flush = false) { global $config; + // if we get passed an IP for some reason, return the IP. + if (is_ipaddr($interface)) + return $interface; + $realif = get_failover_interface($interface, "inet6"); if (!$realif) { if (strstr($interface, "_vip")) diff --git a/etc/inc/unbound.inc b/etc/inc/unbound.inc index 556e772..7f34df6 100644 --- a/etc/inc/unbound.inc +++ b/etc/inc/unbound.inc @@ -148,12 +148,17 @@ EOF; $bindints .= "interface: ::0\n"; } else { foreach($active_interfaces as $ubif) { - $intip = get_interface_ip($ubif); - if (is_ipaddrv4($intip)) - $bindints .= "interface: $intip\n"; - $intip = get_interface_ipv6($ubif); - if (is_ipaddrv6($intip)) - $bindints .= "interface: $intip\n"; + if (is_ipaddr($ubif)) { + //$bindints .= "interface: $ubif\n"; -- until redmine #4062 is fixed, then uncomment this. + } else { + $intip = get_interface_ip($ubif); + if (is_ipaddrv4($intip)) + $bindints .= "interface: $intip\n"; + $intip = get_interface_ipv6($ubif); + if (is_ipaddrv6($intip)) + if (substr($intip, 0, 4) != "fe80") // skipping link local for the moment to not break people's configs: https://redmine.pfsense.org/issues/4062 + $bindints .= "interface: $intip\n"; + } } } } else { |