From 5475d58b98e8dfa68c008a1a88e8bbb3d7f0767d Mon Sep 17 00:00:00 2001 From: Franco Fichtner Date: Wed, 15 Sep 2021 21:04:52 +0200 Subject: [PATCH] interfaces: zap find_interface_ip() in two spots #4749 --- src/etc/inc/interfaces.inc | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/etc/inc/interfaces.inc b/src/etc/inc/interfaces.inc index 247b12301..8e2fe678f 100644 --- a/src/etc/inc/interfaces.inc +++ b/src/etc/inc/interfaces.inc @@ -2618,16 +2618,19 @@ function interface_track6_6rd_configure($interface = 'lan', $lancfg) global $config; $wancfg = $config['interfaces'][$lancfg['track6-interface']]; + if (empty($wancfg)) { log_error("Interface {$interface} tracking non-existent interface {$lancfg['track6-interface']}"); return; } $ip4address = get_interface_ip($lancfg['track6-interface']); + if (!is_ipaddrv4($ip4address)) { log_error("The interface IPv4 address '{$ip4address}' on interface '{$lancfg['track6-interface']}' is invalid, not configuring 6RD tracking"); return; } + $hexwanv4 = return_hex_ipv4($ip4address); /* create the long prefix notation for math, save the prefix length */ @@ -2667,10 +2670,12 @@ function interface_track6_6rd_configure($interface = 'lan', $lancfg) function interface_track6_6to4_configure($interface = 'lan', $lancfg) { $ip4address = get_interface_ip($lancfg['track6-interface']); + if (!is_ipaddrv4($ip4address) || is_private_ip($ip4address)) { log_error("The interface IPv4 address '{$ip4address}' on interface '{$lancfg['track6-interface']}' is not public, not configuring 6to4 tracking"); return; } + $hexwanv4 = return_hex_ipv4($ip4address); /* create the long prefix notation for math, save the prefix length */ @@ -2709,18 +2714,17 @@ function interface_6rd_configure($interface = 'wan', $wancfg) return; } - $wanif = get_real_interface($interface); - $ip4address = find_interface_ip($wanif); + $ip4address = get_interface_ip($interface); if (!is_ipaddrv4($ip4address)) { - log_error("The interface IPv4 address '{$ip4address}' on interface '{$wanif}' is invalid, not configuring 6RD tunnel"); + log_error("The interface IPv4 address '{$ip4address}' on interface '{$interface}' is invalid, not configuring 6RD tunnel"); return false; } $hexwanv4 = return_hex_ipv4(!empty($wancfg['prefix-6rd-v4addr']) ? $wancfg['prefix-6rd-v4addr'] : $ip4address); if (!is_numeric($wancfg['prefix-6rd-v4plen']) || $wancfg['prefix-6rd-v4plen'] < 0 || $wancfg['prefix-6rd-v4plen'] > 32) { - log_error("The interface IPv4 prefix '{$wancfg['prefix-6rd-v4plen']}' on interface '{$wanif}' is invalid, assuming zero"); + log_error("The interface IPv4 prefix '{$wancfg['prefix-6rd-v4plen']}' on interface '{$interface}' is invalid, assuming zero"); $wancfg['prefix-6rd-v4plen'] = 0; } @@ -2785,11 +2789,10 @@ function interface_6to4_configure($interface = 'wan', $wancfg) return; } - $wanif = get_real_interface($interface); - $ip4address = find_interface_ip($wanif); + $ip4address = get_interface_ip($interface); if (!is_ipaddrv4($ip4address) || is_private_ip($ip4address)) { - log_error("The interface IPv4 address '{$ip4address}' on interface '{$wanif}' is not public, not configuring 6to4 tunnel"); + log_error("The interface IPv4 address '{$ip4address}' on interface '{$interface}' is not public, not configuring 6to4 tunnel"); return false; }