function SAVE_FREEWEB_MAIN() { $servername = trim(strtolower($_POST["servername"])); if (substr($servername, 0, 1) == '.') { echo $servername . " FAILED\n"; return; } $users = new usersMenus(); $sock = new sockets(); $FreewebsStorageDirectory = $sock->GET_INFO("FreewebsStorageDirectory"); if (!$users->AsWebMaster) { return "FALSE"; } $uid = $_POST["uid"]; $lvm_vg = $_POST["lvm_vg"]; $vg_size = $_POST["vg_size"]; $ServerIP = $_POST["ServerIP"]; $ServerPort = 0; if (preg_match("#(.+?):([0-9]+)#", $ServerIP, $re)) { $ServerIP = $re[1]; $ServerPort = $re[2]; } $EnableFreeWeb = $sock->GET_INFO("EnableFreeWeb"); if (!is_numeric($EnableFreeWeb)) { $EnableFreeWeb = 0; } if ($EnableFreeWeb == 0) { $sock->SET_INFO("EnableFreeWeb", 1); $sock->SET_INFO("EnableApacheSystem", 1); $sock->getFrameWork("freeweb.php?changeinit-off=yes"); $sock->getFrameWork("cmd.php?restart-artica-status=yes"); $sock->getFrameWork("cmd.php?freeweb-restart=yes"); } if (!is_numeric($vg_size)) { $vg_size = 5000; } $useSSL = $_POST["useSSL"]; if ($_POST["domainname"] == null) { $TDOM = explode(".", $_POST["domainname"]); unset($TDOM[0]); $_POST["domainname"] = @implode(".", $TDOM); } if (!isset($_POST["WebCopyID"])) { $_POST["WebCopyID"] = 0; } $sql = "SELECT servername FROM freeweb WHERE servername='{$_POST["servername"]}'"; $q = new mysql(); $ligne = @mysql_fetch_array($q->QUERY_SQL($sql, 'artica_backup')); if ($ligne["servername"] != null) { if ($uid != null) { $u = new user($uid); $ou = $u->ou; } if (!$users->AsSystemAdministrator) { $ou = $_SESSION["ou"]; } if (isset($_POST["www_dir"])) { $www_dir_field = "www_dir='{$_POST["www_dir"]}',"; } $sql = "UPDATE freeweb SET \n\t\t\tuid='{$uid}',\n\t\t\tgpid='{$_POST["gpid"]}',\n\t\t\tlvm_vg='{$_POST["lvm_vg"]}',\n\t\t\tlvm_size='{$_POST["vg_size"]}',\n\t\t\tUseLoopDisk='{$_POST["UseLoopDisk"]}',\n\t\t\tLoopMounts='{$_POST["LoopMounts"]}',\n\t\t\tUseReverseProxy='{$_POST["UseReverseProxy"]}',\n\t\t\tProxyPass='******',\n\t\t\tuseSSL='{$useSSL}',\n\t\t\tServerPort='{$ServerPort}',\n\t\t\t{$www_dir_field}\n\t\t\tou='{$ou}',\n\t\t\tForwarder='{$_POST["Forwarder"]}',\n\t\t\tForwardTo='{$_POST["ForwardTo"]}',\n\t\t\tServerIP='{$ServerIP}',\n\t\t\tWebCopyID='{$_POST["WebCopyID"]}',\n\t\t\tsslcertificate='{$_POST["sslcertificate"]}'\n\t\t\tWHERE servername='{$servername}'\n\t\t"; } else { if ($uid != null) { $u = new user($uid); $ou = $u->ou; } if ($ou != null) { if ($FreewebsStorageDirectory != null) { $www_dir = "{$FreewebsStorageDirectory}/{$servername}"; } } $sock = new sockets(); $servername = strip_bad_characters($servername); if (substr($servername, strlen($servername) - 1, 1) == '.') { $servername = substr($servername, 0, strlen($servername) - 1); } if (substr($servername, 0, 1) == '.') { $servername = substr($servername, 1, strlen($servername)); } if ($_POST["force-groupware"] != null) { $groupware_field = ",groupware"; $groupware_value = ",'{$_POST["force-groupware"]}'"; } if (!is_numeric($_POST["WebCopyID"])) { $WebCopyID_field = ",WebCopyID"; $WebCopyID_value = ",'{$_POST["WebCopyID"]}'"; } $sslcertificate = $_POST["sslcertificate"]; $sock->getFrameWork("freeweb.php?force-resolv=yes"); $sql = "INSERT INTO freeweb (useSSL,servername,\n\t\tuid,gpid,lvm_vg,lvm_size,UseLoopDisk,LoopMounts,ou,domainname,www_dir,ServerPort,UseReverseProxy,\n\t\tProxyPass,Forwarder,ForwardTo,ForceInstanceZarafaID,ServerIP,sslcertificate{$groupware_field}{$WebCopyID_field})\n\t\tVALUES('{$useSSL}','{$servername}','{$uid}','{$_POST["gpid"]}','{$_POST["lvm_vg"]}','{$_POST["vg_size"]}','{$_POST["UseLoopDisk"]}','{$_POST["LoopMounts"]}','{$ou}',\n\t\t'{$_POST["domainname"]}','{$FreewebsStorageDirectory}','{$ServerPort}','{$_POST["UseReverseProxy"]}','{$_POST["ProxyPass"]}',\n\t\t'{$_POST["Forwarder"]}','{$_POST["ForwardTo"]}','{$_POST["ForceInstanceZarafaID"]}','{$ServerIP}','{$sslcertificate}'{$groupware_value}{$WebCopyID_value}\n\t\t)"; } writelogs("{$sql}", __FUNCTION__, __FILE__, __LINE__); $q = new mysql(); $q->BuildTables(); $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo "Function " . __FUNCTION__ . "\nLine:" . __LINE__ . "\nFile:" . __FILE__ . "\n" . $q->mysql_error; return; } if ($_POST["www_dir"] != null) { $sql = "UPDATE freeweb SET `www_dir`='{$_POST["www_dir"]}' WHERE servername='{$servername}'"; $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo "Function " . __FUNCTION__ . "\nLine:" . __LINE__ . "\nFile:" . __FILE__ . "\n" . $q->mysql_error; return; } } $sock = new sockets(); if (isset($_POST["ADD_DNS_ENTRY"])) { $dnsDOM = explode(".", $_POST["servername"]); $netbiosname = $dnsDOM[0]; unset($dnsDOM[0]); $domainname = implode(".", $dnsDOM); include_once dirname(__FILE__) . "/ressources/class.pdns.inc"; $pdns = new pdns($domainname); $pdns->EditIPName($netbiosname, $_POST["ADD_DNS_ENTRY"], "A"); } if ($ligne["servername"] == null) { if ($_POST["force-groupware"] != null) { $sql = "INSERT INTO drupal_queue_orders(`ORDER`,`servername`) VALUES('INSTALL_GROUPWARE','{$servername}')"; $q = new mysql(); $q->QUERY_SQL($sql, "artica_backup"); $sock->getFrameWork("freeweb.php?rebuild-vhost=yes&servername={$servername}"); } } $sock->getFrameWork("services.php?freeweb-start=yes"); sleep(2); $sock->getFrameWork("cmd.php?freeweb-restart=yes"); $sock->getFrameWork("freeweb.php?rebuild-vhost=yes&servername={$servername}"); }
function xrun() { $unix = new unix(); $curl = new ccurl(); $sock = new sockets(); $tmpfile = $unix->FILE_TEMP(); $tmpdir = $unix->TEMP_DIR(); $squidbin = $unix->LOCATE_SQUID_BIN(); $UpdateUtilityWebServername = $sock->GET_INFO("UpdateUtilityWebServername"); if ($UpdateUtilityWebServername == null) { $UpdateUtilityWebServername = "update.domain.tld"; } $UpdateUtilityStorePath = $sock->GET_INFO("UpdateUtilityStorePath"); if ($UpdateUtilityStorePath == null) { $UpdateUtilityStorePath = "/home/kaspersky/UpdateUtility"; } $UpdateUtilitySchedule = intval($sock->GET_INFO("UpdateUtilitySchedule")); $UpdateUtilityForceProxy = intval($sock->GET_INFO("UpdateUtilityForceProxy")); $FreewebsStorageDirectory = $UpdateUtilityStorePath; build_progress("{creating_the_webservice}:{$UpdateUtilityWebServername} ", 15); $servername = trim(strtolower($UpdateUtilityWebServername)); $SCHEDULES[0] = "0 * * * *"; $SCHEDULES[1] = "0 0,2,4,6,8,10,12,14,16,18,20,22 * * *"; $SCHEDULES[2] = "0 0,4,8,12,16,20 * * *"; $SCHEDULES[3] = "0 0,6,12,18 * * *"; $schedule = $SCHEDULES[$UpdateUtilitySchedule]; $cronfile = "UpdateUtility"; $PATH = "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin:/usr/share/artica-postfix/bin"; $php5 = $unix->LOCATE_PHP5_BIN(); $nice = $unix->EXEC_NICE(); $nohup = $unix->find_program("nohup"); $CRON[] = "PATH={$PATH}"; $CRON[] = "MAILTO=\"\""; $CRON[] = "{$schedule}\troot\t{$nice} {$php5} /usr/share/artica-postfix/exec.keepup2date.php --UpdateUtility >/dev/null 2>&1"; $CRON[] = ""; file_put_contents("/etc/cron.d/{$cronfile}", @implode("\n", $CRON)); chmod("/etc/cron.d/{$cronfile}", 0640); chown("/etc/cron.d/{$cronfile}", "root"); system("/etc/init.d/cron reload"); $uid = null; $lvm_vg = null; $vg_size = null; $ServerIP = null; $ServerPort = 0; $sock->SET_INFO("EnableFreeWeb", 1); $sock->SET_INFO("EnableApacheSystem", 1); $debianbin = $unix->find_program("update-rc.d"); $redhatbin = $unix->find_program("chkconfig"); if (is_file("/etc/init.d/apache")) { $service = "apache"; } if (is_file("/etc/init.d/httpd")) { $service = "httpd"; } if ($service != null) { if (is_file($debianbin)) { shell_exec("{$debianbin} -f {$service} defaults >/dev/null 2>&1"); } if (is_file($redhatbin)) { shell_exec("{$redhatbin} --add {$service} >/dev/null 2>&1"); } } if (!is_numeric($vg_size)) { $vg_size = 5000; } $useSSL = 0; $TDOM = explode(".", $UpdateUtilityWebServername); unset($TDOM[0]); $domainname = @implode(".", $TDOM); $WebCopyID = 0; build_progress("{creating_the_webservice}:{$UpdateUtilityWebServername} ", 50); $q = new mysql(); $sql = "DELETE FROM freeweb WHERE groupware='UPDATEUTILITY'"; $q->QUERY_SQL($sql, "artica_backup"); $servername = strip_bad_characters($UpdateUtilityWebServername); if (substr($servername, strlen($servername) - 1, 1) == '.') { $servername = substr($servername, 0, strlen($servername) - 1); } if (substr($servername, 0, 1) == '.') { $servername = substr($servername, 1, strlen($servername)); } $sql = "INSERT INTO freeweb (useSSL,servername,domainname,www_dir,groupware)\n\t VALUES('0','{$servername}','{$domainname}','{$FreewebsStorageDirectory}','UPDATEUTILITY' )"; build_progress("{creating_the_webservice}:{$UpdateUtilityWebServername} ", 55); $q = new mysql(); $q->BuildTables(); $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo $q->mysql_error . "\n"; build_progress("{creating_the_webservice}:{failed} ", 110); return; } $cgcreate = $unix->find_program("cgcreate"); if (is_file($cgcreate)) { $cgroupsEnabled = intval($sock->GET_INFO("cgroupsEnabled")); if ($cgroupsEnabled == 0) { build_progress("Enable cGroups...", 70); $sock->SET_INFO("cgroupsEnabled", 1); system("{$php5} /usr/share/artica-postfix/exec.cgroups.php --start"); } $UpdateUtilityCpuShares = intval($sock->GET_INFO("UpdateUtilityCpuShares")); $UpdateUtilityDiskIO = intval($sock->GET_INFO("UpdateUtilityDiskIO")); if ($UpdateUtilityCpuShares == 0) { $UpdateUtilityCpuShares = 256; } if ($UpdateUtilityDiskIO == 0) { $UpdateUtilityDiskIO = 450; } $unix->CGROUPS_limit_service_structure("kasupt", $UpdateUtilityCpuShares, 0, $UpdateUtilityDiskIO); build_progress("LIMIT CPU {$UpdateUtilityCpuShares} I/O {$UpdateUtilityDiskIO}", 70); } if (is_file($squidbin)) { if ($UpdateUtilityForceProxy == 1) { build_ufdb(); shell_exec("{$squidbin} -f /etc/squid3/squid.conf -k reconfigure"); } else { build_apache_OFF(); } } $sql = "UPDATE freeweb SET `www_dir`='{$FreewebsStorageDirectory}' WHERE servername='{$UpdateUtilityWebServername}'"; $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { echo "Function " . __FUNCTION__ . "\nLine:" . __LINE__ . "\nFile:" . __FILE__ . "\n" . $q->mysql_error; build_progress("{creating_the_webservice}:{failed} ", 110); return; } $php = $unix->LOCATE_PHP5_BIN(); build_progress("{reconfiguring_service} ", 80); $cmd = trim("{$php} /usr/share/artica-postfix/exec.freeweb.php --sitename {$UpdateUtilityWebServername} --restart --no-httpd-conf"); system($cmd); build_progress("{restarting_service} ", 85); system("/etc/init.d/apache2 restart"); build_progress("{done} ", 100); $sock->SET_INFO("UpdateUtilityWizard", 1); shell_exec("{$nohup} {$php5} /usr/share/artica-postfix/exec.keepup2date.php --UpdateUtility >/dev/null 2>&1 &"); }