function items_save()
{
    $_POST = mysql_escape_line_query($_POST);
    $cache_directory = $_POST["cache_directory"];
    $cache_type = $_POST["cache_type"];
    $size = $_POST["size"];
    $cache_dir_level1 = $_POST["cache_dir_level1"];
    $cache_dir_level2 = $_POST["cache_dir_level2"];
    $CPU = $_POST["CPU"];
    $cachename = $_POST["cachename"];
    $enabled = $_POST["enabled"];
    $min_size = $_POST["min_size"];
    $max_size = $_POST["max_size"];
    $ID = $_POST["ID"];
    if ($cache_type == "rock") {
        $CPU = 0;
    }
    $q = new mysql();
    if (!$q->FIELD_EXISTS("squid_caches_center", "min_size", "artica_backup")) {
        $sql = "ALTER TABLE `squid_caches_center` ADD `min_size` BIGINT UNSIGNED NOT NULL DEFAULT 0";
        $q->QUERY_SQL($sql, "artica_backup");
        if (!$q->ok) {
            writelogs("{$q->mysql_error}\n{$sql}", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__);
        }
    }
    if (!$q->FIELD_EXISTS("squid_caches_center", "wizard", "artica_backup")) {
        $sql = "ALTER TABLE `squid_caches_center` ADD `wizard` smallint NOT NULL DEFAULT 0";
        $q->QUERY_SQL($sql, "artica_backup");
        if (!$q->ok) {
            writelogs("{$q->mysql_error}\n{$sql}", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__);
        }
    }
    if (!$q->FIELD_EXISTS("squid_caches_center", "max_size", "artica_backup")) {
        $sql = "ALTER TABLE `squid_caches_center` ADD `max_size` BIGINT UNSIGNED NOT NULL DEFAULT 0";
        $q->QUERY_SQL($sql, "artica_backup");
        if (!$q->ok) {
            echo $q->mysql_error . "\n{$sql}";
            writelogs("{$q->mysql_error}\n{$sql}", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__);
        }
    }
    if ($cache_type == "tmpfs") {
        $users = new usersMenus();
        $memMB = $users->MEM_TOTAL_INSTALLEE / 1024;
        $memMB = $memMB - 1500;
        if ($size > $memMB) {
            $size = $memMB - 100;
        }
    }
    if ($ID == 0) {
        $q->QUERY_SQL("INSERT IGNORE INTO squid_caches_center \n\t\t(cachename,cpu,cache_dir,cache_type,cache_size,cache_dir_level1,cache_dir_level2,enabled,percentcache,usedcache,zOrder,min_size,max_size)\n\t\tVALUES('{$cachename}',{$CPU},'{$cache_directory}','{$cache_type}','{$size}','{$cache_dir_level1}','{$cache_dir_level2}',{$enabled},0,0,1,{$min_size},{$max_size})", "artica_backup");
    } else {
        $q->QUERY_SQL("UPDATE squid_caches_center SET \n\t\t\tcachename='{$cachename}',\n\t\t\tcpu={$CPU},\n\t\t\tcache_size='{$size}',\n\t\t\tmin_size='{$min_size}',\n\t\t\tmax_size='{$max_size}',\n\t\t\tenabled={$enabled}\n\t\t\tWHERE ID={$ID}", "artica_backup");
    }
    if (!$q->ok) {
        echo $q->mysql_error;
    }
}
Example #2
0
function visited_websites_by_day_perform($tableSource, $tableDest)
{
    $unix = new unix();
    $sql = "SELECT SUM(size) as tsize,SUM(hits) as thits, sitename,familysite FROM {$tableSource} GROUP BY sitename,familysite";
    $t = time();
    events("visited_websites_by_day_perform()::{$tableSource} {$sql}");
    $results = $GLOBALS["Q"]->QUERY_SQL($sql);
    events("visited_websites_by_day_perform()::{$tableSource} " . $unix->distanceOfTimeInWords($t, time(), true));
    if (!$GLOBALS["Q"]->ok) {
        ufdbguard_admin_events("Fatal: {$GLOBALS["Q"]->mysql_error}", __FUNCTION__, __FILE__, __LINE__, "stats");
        return;
    }
    $prefix = "INSERT IGNORE INTO {$tableDest} (sitename,familysite,size,hits) VALUES ";
    $countWorks = mysql_num_rows($results);
    if ($countWorks == 0) {
        return true;
    }
    $f = array();
    $c = 0;
    while ($ligne = @mysql_fetch_array($results, MYSQL_ASSOC)) {
        $ligne = mysql_escape_line_query($ligne, true);
        $f[] = "('{$ligne["sitename"]}','{$ligne["familysite"]}','{$ligne["tsize"]}','{$ligne["thits"]}')";
        $c++;
        if (count($f) > 1000) {
            events("visited_websites_by_day_perform()::{$tableSource} 1000/{$c} rows " . $unix->distanceOfTimeInWords($t, time(), true));
            $GLOBALS["Q"]->QUERY_SQL($prefix . @implode(",", $f));
            if (!$GLOBALS["Q"]->ok) {
                ufdbguard_admin_events("Fatal: {$GLOBALS["Q"]->mysql_error}", __FUNCTION__, __FILE__, __LINE__, "stats");
                return;
            }
            $f = array();
            if (SquidStatisticsTasksOverTime()) {
                stats_admin_events(1, "Statistics overtime... Aborting", null, __FILE__, __LINE__);
                return;
            }
        }
    }
    if (count($f) > 0) {
        $GLOBALS["Q"]->QUERY_SQL($prefix . @implode(",", $f));
        if (!$GLOBALS["Q"]->ok) {
            ufdbguard_admin_events("Fatal: {$GLOBALS["Q"]->mysql_error}", __FUNCTION__, __FILE__, __LINE__, "stats");
            return;
        }
        $f = array();
    }
    ufdbguard_admin_events("Success filling {$tableDest} with {$countWorks} entries", __FUNCTION__, __FILE__, __LINE__, "stats");
    return true;
}
function perform($tablesource, $nexttable, $MONTH)
{
    $q = new mysql_squid_builder();
    if (!$q->CreateYearTable($nexttable)) {
        if ($GLOBALS["VERBOSE"]) {
            echo "{$nexttable}, failed\n";
        }
        return false;
    }
    $q->QUERY_SQL("TRUNCATE TABLE `{$nexttable}`");
    $q->QUERY_SQL("UPDATE `{$tablesource}` SET MAC='' WHERE MAC='00:00:00:00:00:00'");
    ini_set('memory_limit', '750M');
    $sql = "SELECT SUM(size) as size,SUM(hits) as hits,\n\tfamilysite,client,hostname,account,remote_ip\n\t,MAC,country,uid,category,cached FROM `{$tablesource}` \n\tGROUP BY familysite,client,hostname,account,remote_ip,MAC,country,uid,category,cached";
    $t = time();
    if ($GLOBALS["VERBOSE"]) {
        echo "{$nexttable} -> {$tablesource} QUERY\n";
    }
    $results = $q->QUERY_PDO($sql);
    if (!$results) {
        return false;
    }
    $prefix = "INSERT IGNORE INTO {$nexttable} (\n\t`zMD5`,`month`,`size`,`hits`,`familysite`,`client`,`hostname`,`account`,`remote_ip`\n\t,`MAC`,`country`,`uid`,`category`,`cached`\n\t) VALUES ";
    $d = 0;
    $TOT = mysql_num_rows($results);
    $c = 0;
    $s = 0;
    $memory_get_usage = memory_get_usage(true);
    $ko = round($memory_get_usage / 1024, 2);
    $ko = $ko / 1024;
    $lastKo = $ko;
    if ($GLOBALS["VERBOSE"]) {
        echo "{$nexttable}, LOOP ON {$TOT}\n";
    }
    foreach ($results->fetchAll(PDO::FETCH_ASSOC) as $ligne) {
        $zMD5 = md5(serialize($ligne));
        $c++;
        $d++;
        $s++;
        $ligne = mysql_escape_line_query($ligne, true);
        $sql = "{$prefix} ('{$zMD5}','{$MONTH}','{$ligne["size"]}','{$ligne["hits"]}','{$ligne["familysite"]}','{$ligne["client"]}','{$ligne["hostname"]}','{$ligne["account"]}',\n\t\t'{$ligne["remote_ip"]}','{$ligne["MAC"]}','{$ligne["country"]}','{$ligne["uid"]}','{$ligne["category"]}','{$ligne["cached"]}')";
        if ($s > 5000) {
            $memory_get_usage = memory_get_usage(true);
            $ko = round($memory_get_usage / 1024, 2);
            $ko = $ko / 1024;
            $added = $ko - $lastKo;
            $lastKo = $ko;
            if ($GLOBALS["VERBOSE"]) {
                echo "FRR:{$d} - " . ($TOT - $d) . " {$ko}M +{$added}M\n";
            }
            $s = 0;
        }
        unset($ligne);
    }
    return false;
}
function items_save(){
	
	
	$_POST=mysql_escape_line_query($_POST);
	$cache_directory=$_POST["cache_directory"];
	$cache_type=$_POST["cache_type"];
	$size=$_POST["size"];
	$cache_dir_level1=$_POST["cache_dir_level1"];
	$cache_dir_level2=$_POST["cache_dir_level2"];
	$CPU=$_POST["CPU"];
	$cachename=$_POST["cachename"];
	$enabled=$_POST["enabled"];
	$min_size=$_POST["min_size"];
	$max_size=$_POST["max_size"];
	$ID=$_POST["ID"];
	if($cache_type=="rock"){$CPU=0;}
	$q=new mysql();
	
	if(!$q->FIELD_EXISTS("squid_caches_center","min_size","artica_backup")){
		$sql="ALTER TABLE `squid_caches_center` ADD `min_size` BIGINT UNSIGNED NOT NULL DEFAULT 0";
		$q->QUERY_SQL($sql,"artica_backup");
		if(!$q->ok){writelogs("$q->mysql_error\n$sql",__CLASS__.'/'.__FUNCTION__,__FILE__,__LINE__);}
	}
	if(!$q->FIELD_EXISTS("squid_caches_center","max_size","artica_backup")){
		$sql="ALTER TABLE `squid_caches_center` ADD `max_size` BIGINT UNSIGNED NOT NULL DEFAULT 0";
		$q->QUERY_SQL($sql,"artica_backup");
		if(!$q->ok){
			echo $q->mysql_error."\n$sql";
			writelogs("$q->mysql_error\n$sql",__CLASS__.'/'.__FUNCTION__,__FILE__,__LINE__);}
	}
	
	if($cache_type=="tmpfs"){
		$users=new usersMenus();
		$memMB=$users->MEM_TOTAL_INSTALLEE/1024;
		$memMB=$memMB-1500;
		if($size>$memMB){
			$size=$memMB-100;
		}
	}
	
	
	if($ID==0){
		$q->QUERY_SQL("INSERT IGNORE INTO squid_caches_center 
		(cachename,cpu,cache_dir,cache_type,cache_size,cache_dir_level1,cache_dir_level2,enabled,percentcache,usedcache,zOrder,min_size,max_size)
		VALUES('$cachename',$CPU,'$cache_directory','$cache_type','$size','$cache_dir_level1','$cache_dir_level2',$enabled,0,0,1,$min_size,$max_size)","artica_backup");
	}else{
		$q->QUERY_SQL("UPDATE squid_caches_center SET 
			cachename='$cachename',
			cpu=$CPU,
			cache_size='$size',
			min_size='$min_size',
			max_size='$max_size',
			enabled=$enabled
			WHERE ID=$ID","artica_backup");
		
	}
	
if(!$q->ok){echo $q->mysql_error;}
	
	
}