예제 #1
0
function save()
{
    $q = new mysql_meta();
    $f = array();
    $f = explode("\n", $_POST["domains"]);
    while (list($index, $line) = each($f)) {
        $line = trim(strtolower($line));
        if ($line == null) {
            continue;
        }
        $line = mysql_escape_string2($line);
        $md5 = md5($line);
        $n[] = "('{$md5}','{$line}')";
    }
    $q->CheckTables();
    $q->QUERY_SQL("TRUNCATE TABLE `squid_whitelists`");
    if (count($n) > 0) {
        $q->QUERY_SQL("INSERT IGNORE INTO `squid_whitelists` (`zMD5`,`pattern`) VALUES " . @implode(",", $n));
        if (!$q->ok) {
            echo $q->mysql_error;
            return;
        }
    }
    $sock = new sockets();
    $EnableArticaMetaServer = intval($sock->GET_INFO("EnableArticaMetaServer"));
    if ($EnableArticaMetaServer == 0) {
        return;
    }
    $sock->getFrameWork("artica.php?meta-proxy-config=yes");
}
예제 #2
0
function search()
{
    $MyPage = CurrentPageName();
    $page = CurrentPageName();
    $tpl = new templates();
    $sock = new sockets();
    $q = new mysql_meta();
    $table = "metagroups";
    if (!$q->TABLE_EXISTS("metagroups_link")) {
        $q->CheckTables();
    }
    $table = "(SELECT metahosts.hostname,metahosts.hostag,\n\t\t\tmetahosts.uuid,metagroups_link.zmd5 \n\t\t\tFROM metahosts,metagroups_link WHERE\n\t\t\tmetagroups_link.uuid=metahosts.uuid\n\t\t\tAND metagroups_link.gpid={$_GET["ID"]}) as t";
    $searchstring = string_to_flexquery();
    $page = 1;
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY `{$_POST["sortname"]}` {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $sql = "SELECT COUNT( * ) AS tcount FROM {$table} WHERE 1 {$searchstring}";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
    if (!$q->ok) {
        json_error_show("Mysql Error [" . __LINE__ . "]: <br>{$q->mysql_error}.<br>{$sql}", 1);
    }
    $total = $ligne["tcount"];
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    if (!is_numeric($rp)) {
        $rp = 50;
    }
    $pageStart = ($page - 1) * $rp;
    $limitSql = "LIMIT {$pageStart}, {$rp}";
    $sql = "SELECT * FROM {$table} WHERE 1 {$searchstring} {$ORDER} {$limitSql} ";
    $results = $q->QUERY_SQL($sql);
    if (!$q->ok) {
        if ($q->mysql_error != null) {
            json_error_show(date("H:i:s") . "<br>SORT:{$_POST["sortname"]}:<br>Mysql Error [L." . __LINE__ . "]: {$q->mysql_error}<br>{$sql}", 1);
        }
    }
    if (mysql_num_rows($results) == 0) {
        json_error_show("no data", 1);
    }
    $data = array();
    $data['page'] = $page;
    $data['total'] = $total;
    $data['rows'] = array();
    $fontsize = "22";
    $style = " style='font-size:{$fontsize}px'";
    $styleHref = " style='font-size:{$fontsize}px;text-decoration:underline'";
    $free_text = $tpl->javascript_parse_text("{free}");
    $computers = $tpl->javascript_parse_text("{computers}");
    $overloaded_text = $tpl->javascript_parse_text("{overloaded}");
    $orders_text = $tpl->javascript_parse_text("{orders}");
    $directories_monitor = $tpl->javascript_parse_text("{directories_monitor}");
    while ($ligne = mysql_fetch_assoc($results)) {
        $LOGSWHY = array();
        $overloaded = null;
        $loadcolor = "black";
        $StatHourColor = "black";
        $ColorTime = "black";
        $uuid = $ligne["uuid"];
        $hostname = $ligne["hostname"];
        $hostag = utf8_encode($ligne["hostag"]);
        $zmd5 = $ligne["zmd5"];
        $icon_warning_32 = "warning32.png";
        $icon_red_32 = "32-red.png";
        $icon = "ok-32.png";
        $urijs = "Loadjs('artica-meta.menus.php?js=yes&uuid={$uuid}');";
        $link = "<a href=\"javascript:blur();\" OnClick=\"javascript:{$urijs}\" {$styleHref}>";
        $delete = imgtootltip("delete-32.png", null, "Loadjs('{$MyPage}?unlink-js={$zmd5}')");
        $cell = array();
        $cell[] = "<span {$style}>{$link}{$hostname}</a></span><br>{$uuid}";
        $cell[] = "<span {$style}>{$hostag}</a></span>";
        $cell[] = "{$delete}";
        $data['rows'][] = array('id' => $ligne['uuid'], 'cell' => $cell);
    }
    echo json_encode($data);
}
예제 #3
0
function table()
{
    $page = CurrentPageName();
    $tpl = new templates();
    $t = time();
    $disks = $tpl->javascript_parse_text("{disks}");
    $ipaddr = $tpl->javascript_parse_text("{ipaddr}");
    $memory = $tpl->javascript_parse_text("{memory}");
    $load = $tpl->javascript_parse_text("{load}");
    $version = $tpl->javascript_parse_text("{version}");
    $servername = $tpl->javascript_parse_text("{servername2}");
    $status = $tpl->javascript_parse_text("{status}");
    $events = $tpl->javascript_parse_text("{events}");
    $global_whitelist = $tpl->javascript_parse_text("{whitelist} (Meta)");
    $policies = $tpl->javascript_parse_text("{policies}");
    $packages = $tpl->javascript_parse_text("{packages}");
    $switch = $tpl->javascript_parse_text("{switch}");
    $new_server = $tpl->javascript_parse_text("{new_server}");
    $software = $tpl->javascript_parse_text("{software}");
    $tablewith = 691;
    $compilesize = 35;
    $size_elemnts = 50;
    $size_size = 58;
    $delete = "{display: 'delete', name : 'icon3', width : 35, sortable : false, align: 'left'},";
    $categorysize = 387;
    $tag = $tpl->javascript_parse_text("{tag}");
    $q = new mysql_meta();
    if (!$q->TABLE_EXISTS("metahosts")) {
        $q->CheckTables();
    }
    if (!$q->TABLE_EXISTS("metahosts")) {
        echo FATAL_ERROR_SHOW_128("MySQL Error, table metahosts does not exists...");
        return;
    }
    $sql = "SELECT version FROM metahosts GROUP BY version ORDER BY version";
    $results = $q->QUERY_SQL($sql);
    if (!$q->ok) {
        if (stripos($q->mysql_error, "crashed and should be repaired") > 0) {
            $button = "<center style='margin:20px'>" . button("{repair_table}", "Loadjs('mysql.repair.progress.php?table=metahosts&database=articameta')", 40) . "</center>";
        }
        echo FATAL_ERROR_SHOW_128(__FUNCTION__ . "/" . __LINE__ . "<br>" . $q->mysql_error . $button);
        return;
    }
    $ARTICAVER = trim(@file_get_contents("VERSION"));
    while ($ligne = mysql_fetch_assoc($results)) {
        $ligne["version"] = trim($ligne["version"]);
        if ($ligne["version"] == null) {
            continue;
        }
        $VVERS[] = "\t{display: '{$version}: {$ligne["version"]}', name : '{$ligne["version"]}'}";
    }
    $proxy = 0;
    $sql = "SELECT squidver,PROXY FROM metahosts GROUP BY squidver,PROXY ORDER BY squidver";
    $results = $q->QUERY_SQL($sql);
    if (!$q->ok) {
        if (stripos($q->mysql_error, "crashed and should be repaired") > 0) {
            $button = "<center style='margin:20px'>" . button("{repair_table}", "Loadjs('mysql.repair.progress.php?table=metahosts&database=articameta')", 40) . "</center>";
        }
        echo FATAL_ERROR_SHOW_128(__FUNCTION__ . "/" . __LINE__ . "<br>" . $q->mysql_error . $button);
        return;
    }
    while ($ligne = mysql_fetch_assoc($results)) {
        if ($ligne["PROXY"] == 0) {
            continue;
        }
        $ligne["squidver"] = trim($ligne["squidver"]);
        $proxy++;
        $VVERS[] = "\t{display: 'Proxy {$version}: {$ligne["squidver"]}', name : 'prxy{$ligne["squidver"]}'}";
    }
    $clientsNumber = $q->COUNT_ROWS("metahosts");
    $policies_button = "{name: '<strong style=font-size:18px>{$policies}</strong>', bclass: 'Settings', onpress : Policies{$t}},";
    if ($proxy > 0) {
        $proxy_whitelist = "{name: '<strong style=font-size:18px>{$global_whitelist}</strong>', bclass: 'export', onpress : MetaProxyWhiteList},";
    }
    $buttons = "\tbuttons : [\n\t{name: '<strong style=font-size:18px>{$new_server}</strong>', bclass: 'add', onpress : MetaAddServ{$t}},\n\t{name: '<strong style=font-size:18px>{$events}</strong>', bclass: 'Search', onpress : MetaEvents},\n\t\n\t{name: '<strong style=font-size:18px>{$packages}</strong>', bclass: 'Search', onpress : Packages{$t}},{$policies_button}\n\t{name: '<strong style=font-size:18px>{$switch}</strong>', bclass: 'Search', onpress : Switch{$t}},\n\t\n\t{$proxy_whitelist}\n\t\n\t\n\t],";
    $t = time();
    $html = "\n\t<input type='hidden' id='ARTICA_META_MAIN_TABLE_SWITCH' value=0>\n<table class='ARTICA_META_MAIN_TABLE' style='display: none' id='ARTICA_META_MAIN_TABLE' style='width:1200px'></table>\n<script>\n\$(document).ready(function(){\n\t\$('#ARTICA_META_MAIN_TABLE').flexigrid({\n\turl: '{$page}?search=yes',\n\tdataType: 'json',\n\tcolModel : [\n\t{display: '<span style=font-size:18px>status</span>', name : 'icon1', width : 50, sortable : false, align: 'center'},\n\t{display: '<span style=font-size:18px>{$servername}</span>', name : 'hostname', width : 250, sortable : true, align: 'left'},\n\t{display: '<span style=font-size:18px>{$load}</span>', name : 'load', width : 206, sortable : true, align: 'center'},\n\t{display: '<span style=font-size:18px>{$memory}</span>', name : 'mem_perc', width : 122, sortable : true, align: 'center'},\n\t{display: '<span style=font-size:18px>{$disks}</span>', name : 'xdisks', width : 375, sortable : false, align: 'left'},\n\t{display: '<span style=font-size:18px>{$ipaddr}</span>', name : 'public_ip', width : 150, sortable : true, align: 'left'},\n\t{display: '<span style=font-size:18px>{$software}</span>', name : 'squidver', width : 89, sortable : true, align: 'right'},\n\t{display: '<span style=font-size:18px>{$version}</span>', name : 'version', width : 97, sortable : true, align: 'right'},\n\t\n\t],\n{$buttons}\n\tsearchitems : [\n\t{display: '{$servername}', name : 'hostname'},\n\t{display: '{$tag}', name : 'hostag'},\n\t{display: '{$ipaddr}', name : 'public_ip'},\n\t{display: '{$version}', name : 'version'},\n" . @implode($VVERS, ",\n") . "\n\t],\n\tsortname: 'hostname',\n\tsortorder: 'asc',\n\tusepager: true,\n\ttitle: '<strong style=font-size:30px>Meta Server v{$ARTICAVER} - {$clientsNumber} Client(s) </strong>',\n\tuseRp: true,\n\trpOptions: [10, 20, 30, 50,100,200],\n\trp:50,\n\tshowTableToggleBtn: false,\n\twidth: '99%',\n\theight: 800,\n\tsingleSelect: true\n\t\n\t});\n});\n\t\nfunction Profiles{$t}(){\n\tLoadjs('artica-meta.profiles.php');\n}\n\t\nfunction  MetaAddServ{$t}(){\n\tLoadjs('artica-meta.NewServ.php');\n}\t\n\t\nfunction Switch{$t}(){\n\tvar ARTICA_META_MAIN_TABLE_SWITCH=document.getElementById('ARTICA_META_MAIN_TABLE_SWITCH').value;\n\tif(ARTICA_META_MAIN_TABLE_SWITCH==0){ARTICA_META_MAIN_TABLE_SWITCH=1;}else{ARTICA_META_MAIN_TABLE_SWITCH=0;}\n\tdocument.getElementById('ARTICA_META_MAIN_TABLE_SWITCH').value=ARTICA_META_MAIN_TABLE_SWITCH;\n\t\$('#ARTICA_META_MAIN_TABLE').flexOptions({url: '{$page}?search=yes&switch='+ARTICA_META_MAIN_TABLE_SWITCH}).flexReload();\n}\n\t\n\t\nfunction MetaEvents(){\n\tLoadjs('artica-meta.events.php?js=yes&t={$t}');\n}\n\t\nfunction MetaProxyWhiteList(){\n\tLoadjs('squid.whitelist-meta.php');\n}\n\t\nfunction Policies{$t}(){\n\tLoadjs('artica-meta.policies.php');\n}\n\t\nfunction SwitchToArtica(){\n\t\$('#dansguardian2-category-{$t}').flexOptions({url: '{$page}?category-search=yes&minisize={$_GET["minisize"]}&t={$t}&artica=1'}).flexReload();\n}\n\t\nfunction SaveAllToDisk(){\n\tLoadjs('{$page}?compile-all-dbs-js=yes')\n}\n\nfunction LoadCategoriesSize(){\n\tLoadjs('dansguardian2.compilesize.php')\n}\n\t\nfunction CategoryDansSearchCheck(e){\n\tif(checkEnter(e)){CategoryDansSearch();}\n}\n\t\nfunction CategoryDansSearch(){\n\tvar se=escape(document.getElementById('category-dnas-search').value);\n\tLoadAjax('dansguardian2-category-list','{$page}?category-search='+se,false);\n}\n\t\n\tfunction DansGuardianCompileDB(category){\n\tLoadjs('ufdbguard.compile.category.php?category='+category);\n\t}\n\t\n\tfunction CheckStatsApplianceC(){\n\tLoadAjax('CheckStatsAppliance','{$page}?CheckStatsAppliance=yes',false);\n\t}\n\t\n\tvar X_PurgeCategoriesDatabase= function (obj) {\n\tvar results=obj.responseText;\n\tif(results.length>2){alert(results);}\n\tRefreshAllTabs();\n\t}\n\t\n\tfunction PurgeCategoriesDatabase(){\n\tif(confirm('{$purge_catagories_database_explain}')){\n\tvar XHR = new XHRConnection();\n\tXHR.appendData('PurgeCategoriesDatabase','yes');\n\tAnimateDiv('dansguardian2-category-list');\n\tXHR.sendAndLoad('{$page}', 'POST',X_PurgeCategoriesDatabase);\n\t}\n\t\n\t}\n\t\n\tvar X_TableCategoryPurge= function (obj) {\n\tvar results=obj.responseText;\n\tif(results.length>2){alert(results);}\n\t\$('#dansguardian2-category-{$t}').flexReload();\n\t}\n\t\n\tfunction TableCategoryPurge(tablename){\n\tif(confirm('{$purge_catagories_table_explain}')){\n\tvar XHR = new XHRConnection();\n\tXHR.appendData('PurgeCategoryTable',tablename);\n\tXHR.sendAndLoad('dansguardian2.databases.compiled.php', 'POST',X_TableCategoryPurge);\n\t}\n\t}\n\t\n\tfunction Packages{$t}(){\n\t\tLoadjs('artica-meta.packages.php');\n\t}\n\t\n\t\n\t\n\t</script>\n\t\n\t";
    echo $tpl->_ENGINE_parse_body($html);
}
예제 #4
0
function table()
{
    $page = CurrentPageName();
    $tpl = new templates();
    $t = time();
    $new_policy = $tpl->javascript_parse_text("{new_policy}");
    $ipaddr = $tpl->javascript_parse_text("{ipaddr}");
    $memory = $tpl->javascript_parse_text("{memory}");
    $load = $tpl->javascript_parse_text("{load}");
    $version = $tpl->javascript_parse_text("{version}");
    $servername = $tpl->javascript_parse_text("{servername2}");
    $status = $tpl->javascript_parse_text("{status}");
    $events = $tpl->javascript_parse_text("{events}");
    $type = $tpl->javascript_parse_text("{type}");
    $policies = $tpl->javascript_parse_text("{policies}");
    $packages = $tpl->javascript_parse_text("{packages}");
    $policies = $tpl->javascript_parse_text("{policies}");
    $groups = $tpl->javascript_parse_text("{groups2}");
    $tablewith = 691;
    $compilesize = 35;
    $size_elemnts = 50;
    $size_size = 58;
    $delete = $tpl->javascript_parse_text("{delete}");
    $categorysize = 387;
    $function = urlencode($_GET["function"]);
    $q = new mysql_meta();
    if ($_GET["function"] != null) {
        $delete = $tpl->javascript_parse_text("{link}");
    }
    $q->CheckTables();
    $buttons = "\tbuttons : [\n\t{name: '{$new_policy}', bclass: 'add', onpress : NewPolicy{$t}},\n\t\n\t],";
    $t = time();
    $html = "\n\t\n<table class='ARTICA_META_POLICY_TABLE' style='display: none' id='ARTICA_META_POLICY_TABLE' style='width:1200px'></table>\n<script>\n\$(document).ready(function(){\n\t\$('#ARTICA_META_POLICY_TABLE').flexigrid({\n\turl: '{$page}?search=yes&function={$function}',\n\tdataType: 'json',\n\tcolModel : [\n\t{display: 'status', name : 'icon1', width : 50, sortable : false, align: 'center'},\n\t{display: '{$policies}', name : 'policy_name', width : 250, sortable : true, align: 'left'},\n\t{display: '{$type}', name : 'policy_type', width : 250, sortable : true, align: 'left'},\n\t{display: '{$groups}', name : 'null1', width : 70, sortable : true, align: 'center'},\n\t{display: '{$delete}', name : 'delete', width : 60, sortable : true, align: 'center'},\n\t\n\t],\n{$buttons}\n\tsearchitems : [\n\t{display: '{$policies}', name : 'policy_name'},\n\t],\n\tsortname: 'policy_name',\n\tsortorder: 'asc',\n\tusepager: true,\n\ttitle: '<strong style=font-size:22px>Artica Meta {$policies}</strong>',\n\tuseRp: true,\n\trpOptions: [10, 20, 30, 50,100,200],\n\trp:50,\n\tshowTableToggleBtn: false,\n\twidth: '99%',\n\theight: 450,\n\tsingleSelect: true\n\t\n\t});\n\t});\n\n\t\n\t\n\tfunction NewPolicy{$t}(){\n\t\tLoadjs('{$page}?policy-js=yes&ID=0');\n\t}\n\t\n\tfunction MetaProxyWhiteList(){\n\t\tLoadjs('squid.whitelist-meta.php');\n\t}\n\t\n\tfunction Policies{$t}(){\n\t\tLoadjs('artica-meta.policies.php');\n\t\n\t}\n\t\n\tfunction SwitchToArtica(){\n\t\$('#dansguardian2-category-{$t}').flexOptions({url: '{$page}?category-search=yes&minisize={$_GET["minisize"]}&t={$t}&artica=1'}).flexReload();\n\t}\n\t\n\tfunction SaveAllToDisk(){\n\tLoadjs('{$page}?compile-all-dbs-js=yes')\n\t\n\t}\n\t\n\tfunction LoadCategoriesSize(){\n\tLoadjs('dansguardian2.compilesize.php')\n\t}\n\t\n\tfunction CategoryDansSearchCheck(e){\n\tif(checkEnter(e)){CategoryDansSearch();}\n\t}\n\t\n\tfunction CategoryDansSearch(){\n\tvar se=escape(document.getElementById('category-dnas-search').value);\n\tLoadAjax('dansguardian2-category-list','{$page}?category-search='+se,false);\n\t\n\t}\n\t\n\tfunction DansGuardianCompileDB(category){\n\tLoadjs('ufdbguard.compile.category.php?category='+category);\n\t}\n\t\n\tfunction CheckStatsApplianceC(){\n\tLoadAjax('CheckStatsAppliance','{$page}?CheckStatsAppliance=yes',false);\n\t}\n\t\n\tvar X_PurgeCategoriesDatabase= function (obj) {\n\tvar results=obj.responseText;\n\tif(results.length>2){alert(results);}\n\tRefreshAllTabs();\n\t}\n\t\n\tfunction PurgeCategoriesDatabase(){\n\tif(confirm('{$purge_catagories_database_explain}')){\n\tvar XHR = new XHRConnection();\n\tXHR.appendData('PurgeCategoriesDatabase','yes');\n\tAnimateDiv('dansguardian2-category-list');\n\tXHR.sendAndLoad('{$page}', 'POST',X_PurgeCategoriesDatabase);\n\t}\n\t\n\t}\n\t\n\tvar X_TableCategoryPurge= function (obj) {\n\tvar results=obj.responseText;\n\tif(results.length>2){alert(results);}\n\t\$('#dansguardian2-category-{$t}').flexReload();\n\t}\n\t\n\tfunction TableCategoryPurge(tablename){\n\tif(confirm('{$purge_catagories_table_explain}')){\n\tvar XHR = new XHRConnection();\n\tXHR.appendData('PurgeCategoryTable',tablename);\n\tXHR.sendAndLoad('dansguardian2.databases.compiled.php', 'POST',X_TableCategoryPurge);\n\t}\n\t}\n\t\n\tfunction Packages{$t}(){\n\t\tLoadjs('artica-meta.packages.php');\n\t}\n\t\n\t\n\t\n\t</script>\n\t\n\t";
    echo $tpl->_ENGINE_parse_body($html);
}
예제 #5
0
function ident()
{
    if (isset($_SERVER["REMOTE_ADDR"])) {
        $IPADDR = $_SERVER["REMOTE_ADDR"];
    }
    if (isset($_SERVER["HTTP_X_REAL_IP"])) {
        $IPADDR = $_SERVER["HTTP_X_REAL_IP"];
    }
    if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {
        $IPADDR = $_SERVER["HTTP_X_FORWARDED_FOR"];
    }
    $GLOBALS["CLIENT_META_IP"] = $IPADDR;
    $sock = new sockets();
    $ARRAY = unserialize(base64_decode($_GET["ident"]));
    $EnableArticaMetaServer = intval($sock->GET_INFO("EnableArticaMetaServer"));
    $ArticaMetaServerUsername = trim(strtolower($sock->GET_INFO("ArticaMetaServerUsername")));
    $ArticaMetaServerPassword = $sock->GET_INFO("ArticaMetaServerPassword");
    if ($EnableArticaMetaServer == 0) {
        die;
    }
    $UUID = $ARRAY["uuid"];
    $GLOBALS["UUID"] = $UUID;
    $hostname = $ARRAY["hostname"];
    $version = $ARRAY["version"];
    $username = trim(strtolower($ARRAY["username"]));
    $password = $ARRAY["password"];
    if ($ArticaMetaServerUsername != $username) {
        writelogs_meta("Checking identification FROM {$IPADDR} failed, wrong username or password", __FUNCTION__, __FILE__, __LINE__);
        die;
    }
    if ($ArticaMetaServerPassword != $password) {
        writelogs_meta("Checking identification FROM {$IPADDR} failed, wrong username or password", __FUNCTION__, __FILE__, __LINE__);
        die;
    }
    $q = new mysql_meta();
    if (!$q->TABLE_EXISTS("metahosts")) {
        if (!$q->CheckTables()) {
            echo $q->mysql_error;
        }
    }
    if (isset($ARRAY["ARTICA_META_EVENTS"])) {
        echo __LINE__ . " ** ARTICA_META_EVENTS:" . strlen($ARRAY["ARTICA_META_EVENTS"]) . " bytes\n";
        $qev = new mysql();
        $qev->QUERY_SQL($ARRAY["ARTICA_META_EVENTS"], "artica_events");
        if (!$qev->ok) {
            echo "*********************************\n\${$qev->mysql_error}\n*********************************\n";
        }
    } else {
        echo __LINE__ . " ** ARTICA_META_EVENTS: NONE\n";
    }
    $CPU = $ARRAY["CPU"];
    $load = $ARRAY["load"];
    $pourc_mem = $ARRAY["memory"]["ram"]["percent"];
    $ram_used = $ARRAY["memory"]["ram"]["used"];
    $ram_total = $ARRAY["memory"]["ram"]["total"];
    $ALL_DISKS_STATUS = mysql_escape_string2($ARRAY["ALL_DISKS_STATUS"]);
    echo "ALL_DISKS_STATUS:{$ALL_DISKS_STATUS}\n";
    $sql = "SELECT hostname FROM metahosts WHERE uuid='{$UUID}'";
    $ligne = mysql_fetch_array($q->QUERY_SQL($sql));
    $currentDate = date("Y-m-d H:i:s");
    $squid = 0;
    $squidver = null;
    if (isset($ARRAY["SQUID"])) {
        $squid = $ARRAY["SQUID"];
    }
    if (isset($ARRAY["squidver"])) {
        $squidver = $ARRAY["squidver"];
    }
    if (trim($ligne["hostname"]) == null) {
        $q->QUERY_SQL("INSERT IGNORE INTO `metahosts` (uuid,hostname,public_ip,updated,blacklisted,`version`,`CPU_NUMBER`\n\t\t\t\t,`load`,`mem_perc`,`mem_used`,mem_total,disks,PROXY,squidver) \n\t\t\t\tVALUES('{$UUID}','{$hostname}','{$IPADDR}','{$currentDate}',0,'{$version}','{$CPU}'\n\t\t\t\t,'{$load}','{$pourc_mem}','{$ram_used}','{$ram_total}','{$ALL_DISKS_STATUS}','{$squid}','{$squidver}')");
        if (!$q->ok) {
            echo $q->mysql_error;
            return false;
        }
    } else {
        $q->QUERY_SQL("UPDATE `metahosts` SET public_ip='{$IPADDR}', `hostname`='{$hostname}',\n\t\t\t\t`updated`='{$currentDate}',`version`='{$version}',\n\t\t\t\t`CPU_NUMBER`='{$CPU}',\n\t\t\t\t`load`='{$load}',\n\t\t\t\t`mem_perc`='{$pourc_mem}',\n\t\t\t\t`mem_used`='{$ram_used}',\n\t\t\t\tmem_total='{$ram_total}',\n\t\t\t\t`disks`='{$ALL_DISKS_STATUS}',\n\t\t\t\tPROXY='{$squid}',\n\t\t\t\tsquidver='{$squidver}'\n\t\t\t\tWHERE uuid='{$UUID}'");
        if (!$q->ok) {
            if (preg_match("#Unknown column#", $q->mysql_error)) {
                $q->CheckTables();
            }
        }
        if (!$q->ok) {
            echo $q->mysql_error;
            return false;
        }
    }
    return true;
}
function global_status_ini($uuid)
{
    $workingdir = "/usr/share/artica-postfix/ressources/conf/meta/hosts/uploaded/{$uuid}";
    if (!is_file("{$workingdir}/global.status.ini")) {
        if ($GLOBALS["VERBOSE"]) {
            echo "{$workingdir}/global.status.ini ( no such file )\n";
        }
        return;
    }
    $ini = new Bs_IniHandler("{$workingdir}/global.status.ini");
    $f = array();
    $prefix = "INSERT IGNORE INTO global_status (\n\t`uuid`,`MAIN`,`service_name`,`service_cmd`,`service_disabled`,`watchdog_features`,`binpath`,\n\t`explain`,`running`,`installed`,`master_pid`,`master_memory`,`master_cached_memory`,`processes_number`,`uptime`,`master_version` ) VALUES ";
    while (list($MAIN, $subarray) = each($ini->_params)) {
        if (!isset($subarray["installed"])) {
            if ($subarray["master_memory"] != null) {
                $subarray["installed"] = 1;
            } else {
                $subarray["installed"] = 0;
            }
        }
        $f[] = "('{$uuid}','{$MAIN}','{$subarray["service_name"]}',\n\t\t'{$subarray["service_cmd"]}',\n\t\t'{$subarray["service_disabled"]}',\n\t\t'{$subarray["watchdog_features"]}',\n\t\t'{$subarray["binpath"]}',\n\t\t'{$subarray["explain"]}',\n\t\t'{$subarray["running"]}',\n\t\t'{$subarray["installed"]}',\n\t\t'{$subarray["master_pid"]}',\n\t\t'{$subarray["master_memory"]}',\n\t\t'{$subarray["master_cached_memory"]}',\n\t\t'{$subarray["processes_number"]}',\n\t\t'{$subarray["uptime"]}',\n\t\t'{$subarray["master_version"]}'\n\t\t\n\t\t)";
    }
    if (count($f) > 0) {
        $q = new mysql_meta();
        $q->CheckTables();
        $q->QUERY_SQL("DELETE FROM global_status WHERE uuid='{$uuid}'");
        $q->QUERY_SQL($prefix . @implode(",", $f));
        if (!$q->ok) {
            return false;
        }
        @unlink("{$workingdir}/global.status.ini");
    }
}
예제 #7
0
function add_tag_save()
{
    $q = new mysql_meta();
    $uuid = $_POST["uuid"];
    $q->CheckTables();
    $sql = "SELECT hostag FROM metahosts WHERE uuid='{$uuid}'";
    $tag = mysql_escape_string2($_POST["tag"]);
    $q->QUERY_SQL("UPDATE metahosts SET `hostag`='{$tag}' WHERE uuid='{$uuid}'");
    if (!$q->ok) {
        echo $q->mysql_error;
    }
}
예제 #8
0
function table()
{
    $page = CurrentPageName();
    $tpl = new templates();
    $t = time();
    $q = new mysql_meta();
    if (!$q->TABLE_EXISTS("metaorders")) {
        $q->CheckTables();
    }
    if (!$q->TABLE_EXISTS("metaorders")) {
        echo FATAL_ERROR_SHOW_128("Unable to stat metaorders table!");
        die;
    }
    $disks = $tpl->javascript_parse_text("{disks}");
    $ipaddr = $tpl->javascript_parse_text("{ipaddr}");
    $memory = $tpl->javascript_parse_text("{memory}");
    $load = $tpl->javascript_parse_text("{load}");
    $package = $tpl->javascript_parse_text("{package}");
    $servername = $tpl->javascript_parse_text("{servername2}");
    $status = $tpl->javascript_parse_text("{status}");
    $delete = "{display: 'delete', name : 'icon3', width : 35, sortable : false, align: 'left'},";
    $upload = $tpl->javascript_parse_text("{upload}");
    $title = $tpl->javascript_parse_text("{packages}");
    if ($_GET["uuid"] != null) {
        $hostname = $q->uuid_to_host($_GET["uuid"]);
        $title = "Meta Client:{$hostname} - {$package}";
    }
    if ($_GET["gpid"] > 0) {
        $hostname = $q->gpid_to_name($_GET["gpid"]);
        $title = "Meta Clients:{$hostname} - {$package}";
    }
    $buttons = "\tbuttons : [\n\t{name: '{$upload}', bclass: 'export', onpress : Upload{$t}},\n\t],";
    $html = "\n\t<table class='ARTICA_META_PACKAGE_TABLE' style='display: none' id='ARTICA_META_PACKAGE_TABLE'></table>\n\t<script>\n\t\$(document).ready(function(){\n\t\$('#ARTICA_META_PACKAGE_TABLE').flexigrid({\n\turl: '{$page}?search=yes&uuid={$_GET["uuid"]}&gpid={$_GET["gpid"]}&KEY=RELEASES',\n\tdataType: 'json',\n\tcolModel : [\n\t\t{display: '{$package}', name : 'version', width : 609, sortable : false, align: 'left'},\n\t\t{display: '&nbsp;', name : 'update', width : 50, sortable : false, align: 'center'},\n\t\t{display: '&nbsp;', name : 'delete', width : 50, sortable : false, align: 'center'},\n\t\n\t],\n\t{$buttons}\n\tsearchitems : [\n\t{display: '{$package}', name : 'version'},\n\t],\n\tsortname: 'hostname',\n\tsortorder: 'asc',\n\tusepager: true,\n\ttitle: '<strong style=font-size:22px>{$title}</strong>',\n\tuseRp: true,\n\trpOptions: [10, 20, 30, 50,100,200],\n\trp:50,\n\tshowTableToggleBtn: false,\n\twidth: '99%',\n\theight: 400,\n\tsingleSelect: true\n\t\n\t});\n\t});\n\t\nfunction Upload{$t}(){\n\tLoadjs('artica-meta.packages.upload.php');\n} \nfunction Nightly{$t}(){\n\t\$('#ARTICA_META_UPDATEART_TABLE').flexOptions({url: '{$page}?search=yes&uuid={$_GET["uuid"]}&KEY=NIGHTLY'}).flexReload();\n} \t\n</script>";
    echo $html;
}
function search()
{
    $tpl = new templates();
    $MyPage = CurrentPageName();
    $q = new mysql_meta();
    if (!$q->TABLE_EXISTS("proxy_ports_wbl")) {
        $q->CheckTables(null, true);
    }
    $sock = new sockets();
    $t = $_GET["t"];
    $search = '%';
    $table = "proxy_ports_wbl";
    $page = 1;
    $total = 0;
    $OKFW = true;
    if (!$q->TABLE_EXISTS("proxy_ports_wbl")) {
        json_error_show("Fatal! table does not exists");
    }
    if (!is_numeric($_GET["include"])) {
        if ($_GET["include"] == "yes") {
            $_GET["include"] = 1;
        } else {
            $_GET["include"] = 0;
        }
    }
    if (isset($_POST["sortname"])) {
        if ($_POST["sortname"] != null) {
            $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}";
        }
    }
    if (isset($_POST['page'])) {
        $page = $_POST['page'];
    }
    $searchstring = string_to_flexquery();
    if (isset($_POST['rp'])) {
        $rp = $_POST['rp'];
    }
    $pageStart = ($page - 1) * $rp;
    if (is_numeric($rp)) {
        $limitSql = "LIMIT {$pageStart}, {$rp}";
    }
    $sql = "SELECT *  FROM `{$table}` WHERE include={$_GET["include"]} AND groupid={$_GET["gpid"]} {$searchstring} {$ORDER} {$limitSql}";
    $results = $q->QUERY_SQL($sql);
    $no_rule = $tpl->_ENGINE_parse_body("{no_rule}");
    $data = array();
    $data['page'] = $page;
    $data['total'] = mysql_num_rows($results);
    $data['rows'] = array();
    if (!$q->ok) {
        json_error_show($q->mysql_error . "<br>{$sql}");
    }
    if (mysql_num_rows($results) == 0) {
        json_error_show("{$no_rule}");
    }
    $tpl = new templates();
    while ($ligne = mysql_fetch_assoc($results)) {
        $color = "black";
        $ID = $ligne["ID"];
        $pattern = $ligne["pattern"];
        $delete = imgsimple("delete-48.png", null, "Loadjs('{$MyPage}?delete-pattern-js=yes&ID={$ID}&include={$_GET["include"]}',true)");
        $destport = $ligne["destport"];
        $data['rows'][] = array('id' => $ID, 'cell' => array("<span style='font-size:30px;font-weight:normal;color:{$color}'>{$pattern} - {$destport}</span>", "<center style='margin-top:3px;font-size:30px;font-weight:normal;color:{$color}'>{$delete}</center>"));
    }
    echo json_encode($data);
}