From 58085ef4e5f07c4f86f891fa9b0c58fc655a8225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ermal=20Lu=E7i?= Date: Tue, 2 Feb 2010 22:40:14 +0000 Subject: [PATCH] Get the correct value as subnet for 'virtual' interfaces. This unbreaks the Routing pages validation on this types of interfaces. --- etc/inc/interfaces.inc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index 8fdb4bdbb0..b3b890ec3f 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -2645,7 +2645,10 @@ function find_interface_subnet($interface, $flush = false) return; if (!isset($interface_sn_arr_cache[$interface]) or $flush) { - $interface_sn_arr_cache[$interface] = `/sbin/ifconfig {$interface} | /usr/bin/grep -w "inet" | /usr/bin/cut -d" " -f 4 | /usr/bin/head -1`; + if (preg_match("/^tun|^ppp|^pptp|^pppoe|^ovpn|^gif|^gre|^lagg|^bridge|*vlan/i", $interface)) + $interface_sn_arr_cache[$interface] = `/sbin/ifconfig {$interface} | /usr/bin/grep -w "inet" | /usr/bin/cut -d" " -f 6 | /usr/bin/head -1`; + else + $interface_sn_arr_cache[$interface] = `/sbin/ifconfig {$interface} | /usr/bin/grep -w "inet" | /usr/bin/cut -d" " -f 4 | /usr/bin/head -1`; $interface_sn_arr_cache[$interface] = strlen(str_replace("0", "", base_convert(str_replace("\n", "", $interface_sn_arr_cache[$interface]),16, 2))); }