function destroy() { remove_initd(); if (is_file("/etc/cron.d/sendmail")) { @unlink("/etc/cron.d/sendmail"); } if (is_file("/usr/share/sendmail/sendmail")) { @copy("/usr/share/sendmail/sendmail", "/usr/share/sendmail/sendmail.bak"); @unlink("/usr/share/sendmail/sendmail"); } if (is_file("/etc/init.d/sendmail")) { if (!is_file("/etc/init.d/sendmail.bak")) { @copy("/etc/init.d/sendmail", "/etc/init.d/sendmail.bak"); erase_initd(); } } if (!is_file("/usr/sbin/sendmail-msp")) { @file_put_contents("/usr/sbin/sendmail-msp", "#!/bin/sh\n"); shell_exec("/bin/chmod 755 /usr/sbin/sendmail-msp"); } }
function instance_build($crossroads_id) { $q = new mysql(); $xrbin = $GLOBALS["CLASS_UNIX"]->find_program("xr"); if (is_file("/etc/artica-postfix/crossroads/{$crossroads_id}.cmd")) { @unlink("/etc/artica-postfix/crossroads/{$crossroads_id}.cmd"); } $sql = "SELECT * FROM crossroads_main WHERE ID={$crossroads_id}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup")); if ($ligne["enabled"] == 0) { echo "Starting......: Crossroads instance {$crossroads_id} is disabled\n"; stop_instance($crossroads_id); remove_initd($crossroads_id); return; } $cd = array(); if ($GLOBALS["VERBOSE"]) { echo "Starting......: Crossroads instance {$crossroads_id} [DEBUG] -> build_backends({$crossroads_id})\n"; } $backends = build_backends($ligne["ID"]); if (count($backends) == 0) { crossroads_events("This instance have no backend", $crossroads_id, __FUNCTION__, __LINE__); echo "Starting......: Crossroads instance {$crossroads_id} no backend\n"; remove_initd($crossroads_id); return; } $proto = "tcp"; $loadbalancetype = $ligne["loadbalancetype"]; if ($loadbalancetype == 1) { $proto = "http"; $cd[] = "--sticky-http --add-x-forwarded-for"; } $cd[] = "--server {$proto}:{$ligne["listen_ip"]}:{$ligne["listen_port"]}"; $cd[] = "--pidfile /var/run/crossroads/cross_{$ligne["ID"]}.pid"; $cd[] = "--backend-timeout {$ligne["backend_timout_read"]}:{$ligne["backend_timout_write"]}"; $cd[] = "--checkup-interval {$ligne["checkup_interval"]}"; $cd[] = "--client-timeout {$ligne["client_timout"]}:{$ligne["client_timout_write"]}"; $cd[] = "--dispatch-mode {$ligne["dispatch_mode"]}"; $cd[] = @implode(" ", $backends); $cd[] = "--web-interface {$ligne["listen_ip"]}:{$ligne["www_port"]}:\"{$ligne["name"]}\""; if ($ligne["www_username"] != null) { $ligne["www_password"] = $unix->shellEscapeChars($ligne["www_password"]); $cd[] = "--web-interface-auth {$ligne["www_username"]}:{$ligne["www_password"]}"; } $cmdline = $xrbin . " " . @implode(" ", $cd) . " >/var/log/crossroads/cross_{$ligne["ID"]}.log 2>&1 &"; crossroads_events("Instance successfully reconfigured", $crossroads_id, __FUNCTION__, __LINE__); if ($GLOBALS["VERBOSE"]) { echo "Starting......: Crossroads instance {$ligne["ID"]} cmdline={$cmdline}\n"; } @file_put_contents("/etc/artica-postfix/crossroads/{$ligne["ID"]}.cmd", $cmdline); build_init_d($ligne["ID"]); }