$ifname) { if (in_array($ifname, $ifarr)) { $gw .= setup_etc_gateways($ifname, 'enable'); } else { $gw .= setup_etc_gateways($ifname, 'disable'); } } } else { /* setup for all interfaces */ $gw = setup_etc_gateways(); } $fd = fopen("/etc/gateways", "w"); fwrite($fd, $gw); fclose($fd); restart_routed(); } else { stop_routed(); } } function setup_etc_gateways($iface="", $mode="") { global $config; if ($iface != "") { $realif=convert_friendly_interface_to_real_interface_name(strtoupper($iface)); $ret = "if={$realif} "; } switch($mode) { case "enable": if ($config['installedpackages']['routed']['config'][0]['ripversion'] == "2") { $ret .= "ripv2 "; $passwd = $config['installedpackages']['routed']['config'][0]['passwd']; if ($passwd != "") { $ret .= "passwd={$passwd} "; } } break; case "disable": $ret .= "no_rip "; break; default: break; } $ret .= "\n"; return $ret; } function start_routed() { mwexec("/sbin/routed"); } function stop_routed() { if(isvalidproc("routed")) mwexec("killall routed"); } function restart_routed() { stop_routed(); start_routed(); } ?>