if (strstr($prevdevnam, "ppp") == "") { dhcp_client("STATELESS", $inf, $devnam, "IA-PD", $router, $dns); } else { XNODE_set_var($inf . "_PREVINF", $infprev); dhcp_client("PPPDHCP", $inf, $devnam, "IA-PD", $router, $dns); } } else { cmd("phpsh /etc/scripts/IPV6.INET.php ACTION=ATTACH" . " MODE=STATELESS" . " INF=" . $inf . " DEVNAM=" . $devnam . " IPADDR=" . $ipaddr . " PREFIX=" . $prefix . " GATEWAY=" . $router . ' "DNS=' . $dns . '"'); if ($oflag == "1" && $dns == "") { msg("STATELESS DHCP: information only."); dhcp_client("INFOONLY", $inf, $devnam, "", "", ""); } } return 0; } } } //cmd("killall rdisc6"); cmd("/etc/scripts/killpid.sh " . $pid); cmd("sleep 1"); /* Not configured, try later. */ cmd('xmldbc -t "ra.iptest.' . $inf . ':5:' . $me . '"'); /* force to send RS */ //$conf = "/proc/sys/net/ipv6/conf/".$_GLOBALS["DEVNAM"]; //fwrite(w, $conf."/disable_ipv6", "1"); //fwrite(w, $conf."/disable_ipv6", "0"); return 0; } /* Main entry */ main_entry($_GLOBALS["INF"], $_GLOBALS["PHYINF"], $_GLOBALS["DEVNAM"], $_GLOBALS["DHCPOPT"], $_GLOBALS["DNS"], $_GLOBALS["ME"]);
stopcmd("\tip route del default dev " . $devnam); stopcmd("\txmldbc -s " . $stsp . "/inet/ipv4/valid 0"); stopcmd("\tevent " . $inf . ".DOWN"); stopcmd("\trm -f /var/run/" . $inf . ".UP"); stopcmd("fi"); //stopcmd("phpsh /etc/scripts/IPV4.INET.php ACTION=DETACH INF=".$inf); } stopcmd("if [ -f /var/run/dslite_start.pid ]; then"); stopcmd("\tpid=`pfile -f /var/run/dslite_start.pid`"); stopcmd("\t[ \"{$pid}\" != \"0\" ] && kill {$pid} > /dev/console 2>&1"); stopcmd("\trm -rf /var/run/dslite_start.pid"); stopcmd("fi"); } function main_entry() { if ($_GLOBALS["INF"] == "") { return "No INF !!"; } if ($_GLOBALS["ACTION"] == "DSLITE_START" || $_GLOBALS["ACTION"] == "DSLITE_STOP") { return inet_ipv4_dslite($_GLOBALS["INF"], $_GLOBALS["IFNAME"], $_GLOBALS["INET"], $_GLOBALS["INETP"], $_GLOBALS["INFPREV"]); } return "Unknown action - " . $_GLOBALS["ACTION"]; } /*****************************************/ $ret = main_entry(); if ($ret != "") { echo "# " . $ret . "\nexit 9\n"; } else { echo "exit 0\n"; } /*****************************************/
} function msg($msg) { cmd("echo [ENULA]: " . $msg . " > /dev/console"); } function error($m) { cmd("echo [ENULA]: ERROR: " . $m); return 9; } /***********************************************************************/ function main_entry($inf, $devnam, $ipaddr, $prefix) { $ipv6enable = fread("e", "/proc/sys/net/ipv6/conf/" . $devnam . "/disable_ipv6"); if ($ipv6enable == "0") { msg("Set ULA ... "); /* Start script */ cmd("phpsh /etc/scripts/IPV6.INET.php ACTION=ATTACH" . " MODE=UL" . " INF=" . $inf . " DEVNAM=" . $devnam . " IPADDR=" . $ipaddr . " PREFIX=" . $prefix); } else { /* Generate wait script. */ $enula = "/var/servd/INET." . $inf . "-enula.sh"; fwrite(w, $enula, "#!/bin/sh\n" . "phpsh /etc/scripts/ENULA.php" . " INF=" . $inf . " DEVNAM=" . $devnam . " IPADDR=" . $ipaddr . " PREFIX=" . $prefix . "\n"); /* Start script ... */ cmd("chmod +x " . $enula); cmd('xmldbc -t "enula.' . $inf . ':5:' . $enula . '"'); } return 0; } /* Main entry */ main_entry($_GLOBALS["INF"], $_GLOBALS["DEVNAM"], $_GLOBALS["IPADDR"], $_GLOBALS["PREFIX"]);
{ echo $cmd . "\n"; } function msg($msg) { cmd("echo [/etc/scripts/stopchild.php]" . $msg . " > /dev/console"); } function main_entry($uid) { if ($uid == "") { return "No Child UID !!"; } /* Check parent is up or not*/ if (isfile("/var/run/CHILD." . $uid . ".UP") == 1) { cmd("service INET." . $uid . " stop"); } else { msg("Child interface already stopped. Do nothing."); } } /*****************************************/ /* Required variables: * * UID: LAN-4... */ $uid = $_GLOBALS["CHILDUID"]; $ret = main_entry($uid); if ($ret != "") { cmd("# " . $ret . "\nexit 9\n"); } else { cmd("exit 0\n"); }