function JOIN_NET($array) { $unix = new unix(); exec($unix->find_program("hamachi") . " -c /etc/hamachi login", $l); echo implode("\n", $l); exec($unix->find_program("hamachi") . " -c /etc/hamachi join {$array["NETWORK"]} {$array["PASSWORD"]}", $l); echo implode("\n", $l); exec($unix->find_program("hamachi") . " -c /etc/hamachi go-online {$array["NETWORK"]}", $l); echo implode("\n", $l); FixRoute(); }
function JOIN_NET($array) { if (!isset($GLOBALS["COUNT" . __FUNCTION__])) { $GLOBALS["COUNT" . __FUNCTION__] = 0; } $unix = new unix(); if (!isset($GLOBALS["hamachi_bin"])) { $GLOBALS["hamachi_bin"] = $unix->find_program("hamachi"); } echo "Starting......: " . date("H:i:s") . " hamachi [logout]: ...- {$GLOBALS["COUNT" . __FUNCTION__]}\n"; exec($GLOBALS["hamachi_bin"] . " logout 2>&1", $l); while (list($num, $ligne) = each($l)) { echo "Starting......: " . date("H:i:s") . " hamachi [logout]: {$ligne}\n"; } $l = array(); echo "Starting......: " . date("H:i:s") . " hamachi [login]: ...- {$GLOBALS["COUNT" . __FUNCTION__]}\n"; exec($GLOBALS["hamachi_bin"] . " login 2>&1", $l); while (list($num, $ligne) = each($l)) { echo "Starting......: " . date("H:i:s") . " hamachi [login]: {$ligne}\n"; if (preg_match("#failed, busy#", $ligne)) { echo "Starting......: " . date("H:i:s") . " hamachi [login]: waiting 2 seconds\n"; sleep(2); if ($GLOBALS["COUNT" . __FUNCTION__] < 5) { $GLOBALS["COUNT" . __FUNCTION__] = $GLOBALS["COUNT" . __FUNCTION__] + 1; JOIN_NET($array); } } if (preg_match("#failed, already online#", $ligne)) { echo "Starting......: " . date("H:i:s") . " hamachi [login]: OK already online\n"; } } echo "Starting......: " . date("H:i:s") . " hamachi [join]: {$array["NETWORK"]}...\n"; $cmd = $GLOBALS["hamachi_bin"] . " join {$array["NETWORK"]} {$array["PASSWORD"]} 2>&1"; exec($cmd, $l1); if ($GLOBALS["VERBOSE"]) { echo $cmd . "\n"; } while (list($num, $ligne) = each($l1)) { echo "Starting......: " . date("H:i:s") . " hamachi [join]: {$ligne}\n"; if (preg_match("#failed, manual approval required#", $ligne)) { echo "Starting......: " . date("H:i:s") . " hamachi [join]: approval requested\n"; DO_JOIN($array["NETWORK"], $array["PASSWORD"]); } } DO_GO_ONLINE($array["NETWORK"]); FixRoute(); }