diff options
-rw-r--r-- | etc/inc/interfaces.inc | 5 | ||||
-rw-r--r-- | etc/inc/util.inc | 28 | ||||
-rwxr-xr-x | etc/rc | 3 |
3 files changed, 22 insertions, 14 deletions
diff --git a/etc/inc/interfaces.inc b/etc/inc/interfaces.inc index 89915bd..67bf69a 100644 --- a/etc/inc/interfaces.inc +++ b/etc/inc/interfaces.inc @@ -75,9 +75,9 @@ function does_interface_exist($interface) { global $config; if(!$interface) - return false; + return false; - $ints = get_interface_arr(); + $ints = get_interface_arr(true); if (in_array($interface, $ints)) return true; else @@ -89,7 +89,6 @@ function interfaces_loopback_configure() { echo "Configuring loopback interface..."; pfSense_interface_setaddress("lo0", "127.0.0.1"); interfaces_bring_up("lo0"); - exec("/sbin/route add 127.0.0.2 127.0.0.1"); if($g['booting']) echo "done.\n"; return 0; diff --git a/etc/inc/util.inc b/etc/inc/util.inc index e4efbfb..0551d40 100644 --- a/etc/inc/util.inc +++ b/etc/inc/util.inc @@ -678,6 +678,9 @@ function get_interface_list($mode = "active", $keyby = "physical", $vfaces = "") if(stristr($status, "active")) $upints[] = $int; } break; + default: + $upints = explode(" ", trim(shell_exec("/sbin/ifconfig -l"))); + break; } /* build interface list with netstat */ $linkinfo = ""; @@ -704,8 +707,9 @@ function get_interface_list($mode = "active", $keyby = "physical", $vfaces = "") $toput['ipaddr'] = $aip[1]; } } - foreach($config['interfaces'] as $name => $int) { - if($int['if'] == $ifname) $friendly = $name; + if (is_array($config['interfaces'])) { + foreach($config['interfaces'] as $name => $int) + if($int['if'] == $ifname) $friendly = $name; } switch($keyby) { case "physical": @@ -1186,15 +1190,17 @@ function is_interface_mismatch() { /* XXX: Should we process only enabled interfaces?! */ $do_assign = false; $i = 0; - foreach ($config['interfaces'] as $ifname => $ifcfg) { - if (preg_match("/^enc|^cua|^tun|^l2tp|^pptp|^ppp|^ovpn|^gif|^gre|^lagg|^bridge|vlan|_wlan/i", $ifcfg['if'])) { - $i++; - } - else if (does_interface_exist($ifcfg['if']) == false) { - $do_assign = true; - } else - $i++; - } + if (is_array($config['interfaces'])) { + foreach ($config['interfaces'] as $ifname => $ifcfg) { + if (preg_match("/^enc|^cua|^tun|^l2tp|^pptp|^ppp|^ovpn|^gif|^gre|^lagg|^bridge|vlan|_wlan/i", $ifcfg['if'])) { + $i++; + } + else if (does_interface_exist($ifcfg['if']) == false) { + $do_assign = true; + } else + $i++; + } + } if ($g['minimum_nic_count'] > $i) { $do_assign = true; @@ -349,6 +349,9 @@ echo -n "Launching the init system..." /bin/rm -f /cf/conf/backup/backup.cache /bin/rm -f /root/lighttpd* /usr/bin/touch $varrunpath/booting +for iface in `/sbin/ifconfig -l`; do + /sbin/ifconfig $iface up +done /etc/rc.bootup # If a shell was selected from recovery |