function uninstall_bridge() { @unlink("/usr/share/artica-postfix/ressources/logs/vserver.daemon.log"); echo2("Starting......: VPS server: Installing bridge..."); shell_exec("/bin/chmod 777 /usr/share/artica-postfix/ressources/logs/vserver.daemon.log"); $sock = new sockets(); $unix = new unix(); $users = new usersMenus(); $dhcp = false; $ifconfig = $unix->find_program("ifconfig"); $LXCEnabled = $sock->GET_INFO("LXCEnabled"); $routebin = $unix->find_program("route"); $brctl = $unix->find_program("brctl"); $ifdown = $unix->find_program("ifdown"); if (!is_numeric($LXCEnabled)) { $LXCEnabled = 0; } $LXCINterface = $sock->GET_INFO("LXCInterface"); $breth = "br5"; echo2("Starting......: VPS server: check interfaces {$breth}"); echo2("Starting......: VPS server: upgrading virtual networks"); while (list($ethIndex, $array) = each($interfaces)) { if (preg_match("#{$breth}:[0-9]+#", $ethIndex)) { $array_eth = array(); $array_eth["UNSET"] = true; echo2("Starting......: VPS server: Deleting {$ethIndex}"); shell_exec("{$ifconfig} {$ethIndex} down >/dev/null 2>&1"); $unix->NETWORK_DEBIAN_SAVE($ethIndex, $array_eth, true); } } echo2("Starting......: VPS server: upgrading virtual networks (if set)"); $sql = "UPDATE nics_virtuals SET nic='{$LXCINterface}' WHERE nic='{$breth}'"; $q = new mysql(); $q->QUERY_SQL($sql, "artica_backup"); echo2("Starting......: VPS server: upgrading VLANs (if set)"); $sql = "UPDATE nics_vlan SET nic='{$LXCINterface}' WHERE nic='{$breth}'"; $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo2("Starting......: VPS server: mysql error {$q->mysql_error}"); } echo2("Starting......: VPS server: Removing {$breth} config in memory"); shell_exec2("{$brctl} delif {$breth} {$LXCINterface}"); shell_exec2("{$ifconfig} {$breth} 0.0.0.0"); shell_exec2("{$ifconfig} {$breth} down"); shell_exec2("{$brctl} delbr {$brctl}"); $nics = new system_nic(); $nics->RemoveLXCBridge($LXCINterface, $breth); echo2("Starting......: VPS server: Unlock Artica Interface"); $sock->SET_INFO("LXCEthLocked", 0); $sock->SET_INFO("LXCBridged", 0); echo2("Starting......: VPS server: Scheduling to restart network"); $nicsAll = ifconfiglisteth(); echo2("Starting......: VPS server: " . count($nicsAll) . " Listed interface(s)"); while (list($ethL, $eth2) = each($nicsAll)) { if (preg_match("#{$breth}#", $ethL)) { echo2("Starting......: VPS server: shutdown {$ethL}"); shell_exec("{$ifconfig} {$ethL} down >/dev/null 2>&1"); continue; } if (preg_match("#vlan#", $ethL)) { echo2("Starting......: VPS server: shutdown {$ethL}"); shell_exec("{$ifconfig} {$ethL} down >/dev/null 2>&1"); continue; } echo2("Starting......: VPS server: keep {$ethL}"); } $ip = $unix->find_program("ip"); exec("{$ip} route 2>&1", $results); while (list($index, $line) = each($results)) { if (preg_match("#dev {$breth}#", $line)) { echo2("Starting......: VPS server: remove route {$line}"); shell_exec("{$ip} route del {$line}"); } } $nets = new system_nic(); if ($users->AS_DEBIAN_FAMILY) { echo2("Starting......: VPS server: reconfigure network (debian mode)"); $datas = $nets->root_build_debian_config(); @file_put_contents("/etc/network/interfaces", $datas); $unix->NETWORK_DEBIAN_RESTART(); return; } echo2("Starting......: VPS server: reconfigure network (redhat mode)"); $nets->root_build_redhat_config(); $unix->NETWORK_REDHAT_RESTART(); }