diff options
Diffstat (limited to 'src/etc/inc/config.console.inc')
-rw-r--r-- | src/etc/inc/config.console.inc | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/src/etc/inc/config.console.inc b/src/etc/inc/config.console.inc index 36cd694..f719591 100644 --- a/src/etc/inc/config.console.inc +++ b/src/etc/inc/config.console.inc @@ -548,4 +548,63 @@ function vlan_setup() { } } +function check_for_alternate_interfaces() { + global $config; + + // If the WAN and/or LAN devices in the factory default config do not exist, + // then look for alternate devices. + // This lets many systems boot a factory default config without being + // forced to do interface assignment on the console. + + $specplatform = system_identify_specific_platform(); + $default_device = array(); + + // If we recognise the platform, then specify the devices directly. + switch ($specplatform['name']) { + case 'alix': + $default_device['wan'] = "vr1"; + $default_device['lan'] = "vr0"; + break; + case 'APU': + $default_device['wan'] = "re1"; + $default_device['lan'] = "re2"; + break; + case 'RCC-VE': + $default_device['wan'] = "igb0"; + $default_device['lan'] = "igb1"; + break; + default: + $default_device['wan'] = ""; + $default_device['lan'] = ""; + break; + } + + // Other common device names can be put here and will be looked for + // if the system was not one of the known platforms. + $other_devices_arr['wan'] = array("vr1", "re1", "igb0", "em0"); + $other_devices_arr['lan'] = array("vr0", "re2", "igb1", "em1"); + $interface_assignment_changed = false; + + foreach ($other_devices_arr as $ifname => $other_devices) { + if (!does_interface_exist($config['interfaces'][$ifname]['if'])) { + if (does_interface_exist($default_device[$ifname])) { + $config['interfaces'][$ifname]['if'] = $default_device[$ifname]; + $interface_assignment_changed = true; + } else { + foreach ($other_devices as $other_device) { + if (does_interface_exist($other_device)) { + $config['interfaces'][$ifname]['if'] = $other_device; + $interface_assignment_changed = true; + break; + } + } + } + } + } + + if ($interface_assignment_changed) { + write_config("Factory default boot detected WAN " . $config['interfaces']['wan']['if'] . " and LAN " . $config['interfaces']['lan']['if']); + } +} + ?> |