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"); }
function popup() { $artica_meta = new mysql_meta(); $LicenseInfos = $artica_meta->LicenseInfos($_GET["uuid"]); $page = CurrentPageName(); $tpl = new templates(); $FINAL_TIME = 0; if (isset($LicenseInfos["FINAL_TIME"])) { $FINAL_TIME = intval($LicenseInfos["FINAL_TIME"]); } $LICT = "Community Edition"; if ($LicenseInfos["CORP_LICENSE"]) { $LICT = "Entreprise Edition"; } if ($LicenseInfos["ExpiresSoon"] > 0) { if ($LicenseInfos["ExpiresSoon"] < 31) { $LICT = "<span style='color:red'>{trial_mode}</span>"; } } if ($FINAL_TIME > 0) { $ExpiresSoon = intval(time_between_day_Web($FINAL_TIME)); if ($ExpiresSoon < 7) { $ExpiresSoon_text = "<strong style='color:red;font-size:16px'> {ExpiresSoon}</strong>"; } $licenseTime = "\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:24px'>{expiredate}:</td>\n\t\t\t\t<td style='font-size:24px'>" . $tpl->time_to_date($FINAL_TIME) . " (" . distanceOfTimeInWords(time(), $FINAL_TIME) . "{$ExpiresSoon_text})</td>\n\t\t\t\t\t</tr>"; } if (is_numeric($LicenseInfos["TIME"])) { $tt = distanceOfTimeInWords($LicenseInfos["TIME"], time()); $last_access = "\n\t\t<tr>\n\t\t<td class=legend style='font-size:24px'>{last_update}:</td>\n\t\t<td style='font-size:24px'>{since} {$tt}</td>\n\t\t</tr>"; } $html = "<div style='font-size:30px'>{$LICT}</div><div style='width:98%' class=form>\n<table style='width:100%'>\n\t</tr>\n\t{$last_access}\n\t<tr>\n\t\t<td class=legend style='font-size:24px'>{company}:</td>\n\t\t<td><span style='font-size:24px;font-weight:bold'>{$LicenseInfos["COMPANY"]}</span></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:24px'>{your_email_address}:</td>\n\t\t\t\t<td><span style='font-size:24px;font-weight:bold'>{$LicenseInfos["EMAIL"]}</span></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:24px'>{nb_employees}:</td>\n\t\t\t\t<td><span style='font-size:24px;font-weight:bold'>" . FormatNumber($LicenseInfos["EMPLOYEES"]) . "</span></td>\n\t\t\t</tr>\n\t\t\t<tr>\n\t\t\t\t<td class=legend style='font-size:24px'>{license_number}:</td>\n\t\t\t\t<td style='font-size:24px'>{$LicenseInfos["license_number"]}</td>\n\t\t\t</tr>\n\t\t<tr>\n\t\t\t<td class=legend style='font-size:24px'>{license_status}:</td>\n\t\t\t<td style='font-size:24px;'>{$LicenseInfos["license_status"]}</td>\n\t\t</tr>\n\t\t{$licenseTime}\n\t</table>\n</td>\n</table></div>"; echo $tpl->_ENGINE_parse_body($html); }
function tabs() { $page = CurrentPageName(); $tpl = new templates(); $artica_meta = new mysql_meta(); $isProxyAll = $artica_meta->isProxyAll(); if ($isProxyAll > 0) { $array["proxys"] = "Proxys ({$isProxyAll})"; } $array["hosts"] = '{hosts}'; $array["groups"] = '{groups2}'; if ($isProxyAll > 0) { if ($artica_meta->COUNT_ROWS("hotspot_members") > 0) { $array["hotspot_members"] = '{hotspot_members}'; } } if ($isProxyAll > 0) { $array["categories"] = '{your_categories}'; $array["acls"] = '{acls}'; } $array["server-params"] = "{main_parameters}"; //$array["uploads"]='{uploads}'; while (list($num, $ligne) = each($array)) { if ($num == "proxys") { $html[] = $tpl->_ENGINE_parse_body("<li><a href=\"artica-meta.proxys.php\"><span style='font-size:22px'>{$ligne}</span></a></li>\n"); continue; } if ($num == "hosts") { $html[] = $tpl->_ENGINE_parse_body("<li><a href=\"artica-meta.hosts.php\"><span style='font-size:22px'>{$ligne}</span></a></li>\n"); continue; } if ($num == "categories") { $html[] = $tpl->_ENGINE_parse_body("<li><a href=\"artica-meta.proxys.categories.php\"><span style='font-size:22px'>{$ligne}</span></a></li>\n"); continue; } if ($num == "groups") { $html[] = $tpl->_ENGINE_parse_body("<li><a href=\"artica-meta.groups.php\"><span style='font-size:22px'>{$ligne}</span></a></li>\n"); continue; } if ($num == "server-params") { $html[] = $tpl->_ENGINE_parse_body("<li><a href=\"artica-meta.php?parameters=yes\"><span style='font-size:22px'>{$ligne}</span></a></li>\n"); continue; } if ($num == "hotspot_members") { $html[] = $tpl->_ENGINE_parse_body("<li><a href=\"artica-meta.hotspot_members.php\"><span style='font-size:22px'>{$ligne}</span></a></li>\n"); continue; } if ($num == "uploads") { $html[] = $tpl->_ENGINE_parse_body("<li><a href=\"artica-meta.uploads.php\"><span style='font-size:22px'>{$ligne}</span></a></li>\n"); continue; } if ($num == "acls") { $html[] = $tpl->_ENGINE_parse_body("<li><a href=\"artica-meta.proxy.acls.php\"><span style='font-size:22px'>{$ligne}</span></a></li>\n"); continue; } $html[] = $tpl->_ENGINE_parse_body("<li><a href=\"{$page}?{$num}=yes&uuid=" . urlencode($_GET["uuid"]) . "\"><span style='font-size:22px'>{$ligne}</span></a></li>\n"); } echo build_artica_tabs($html, "meta-start", 1490); }
function js() { $page = CurrentPageName(); $tpl = new templates(); header("content-type: application/x-javascript"); $q = new mysql_meta(); $title = $tpl->_ENGINE_parse_body("{SQUID_STATS1}: " . $q->uuid_to_host($_GET["uuid"])); $html = "YahooWin4('990','{$page}?tabs=yes&uuid={$_GET["uuid"]}','{$title}');"; echo $html; }
function js() { header("content-type: application/x-javascript"); $tpl = new templates(); $title = $tpl->_ENGINE_parse_body("{events}"); $page = CurrentPageName(); $artica_meta = new mysql_meta(); $hostname = $artica_meta->uuid_to_host($_GET["uuid"]); echo "YahooWin3('850','{$page}?uuid=" . urlencode($_GET["uuid"]) . "','{$hostname}')"; }
function meta_groups() { $q = new mysql_meta(); $metagroups[0] = "{none}"; $sql = "SELECT * FROM metagroups ORDER BY groupname"; $results = $q->QUERY_SQL($sql); while ($ligne = mysql_fetch_assoc($results)) { $metagroups[$ligne["ID"]] = $ligne["groupname"]; } return $metagroups; }
function IMPORT_COMMUNITY_POST_VISITED() { $q = new mysql_meta(); $array = unserialize(base64_decode($_POST["COMMUNITY_POST_VISITED"])); $prefix = "INSERT IGNORE INTO dansguardian_community_nocat(zmd5,uuid,sitename,HitsNumber,familysite) VALUES " . @implode(",", $array); $q->QUERY_SQL($prefix); if (!$q->ok) { $q->meta_admin_mysql(0, "MySQL error", $q->mysql_error, __FILE__, __LINE__); return; } echo "<ANSWER>OK</ANSWER>"; }
function Disable() { $uuid = $_POST["uuid"]; $meta = new mysql_meta(); if (intval($_POST["gpid"]) > 0) { if (!$meta->CreateOrder_group(intval($_POST["gpid"]), "PROXY_ENABLE_URGENCY", array())) { echo "Failed\nFunction:" . __FUNCTION__ . "\nLine:" . __LINE__ . "\nFile:" . basename(__FILE__); } return; } if (!$meta->CreateOrder($uuid, "PROXY_ENABLE_URGENCY", array())) { echo "Failed\nFunction:" . __FUNCTION__ . "\nLine:" . __LINE__ . "\nFile:" . basename(__FILE__); } }
function Save() { $policy_id = $_POST["policy-id"]; unset($_POST["policy-id"]); $q = new mysql_meta(); while (list($key, $val) = each($_POST)) { if (!$q->SET($key, $val, $policy_id)) { echo $q->mysql_error; return; } } $sock = new sockets(); $sock->getFrameWork("artica.php?apply-policy=yes&policy-id={$policy_id}"); }
function showlist() { $page = 1; $q = new mysql_squid_builder(); $table = "CACHED_SITES"; if ($_GET["uuid"] != null) { $q = new mysql_meta(); $table = "{$_GET["uuid"]}_CACHED_SITES"; } 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 ($searchstring != null) { $sql = "SELECT COUNT(*) as TCOUNT FROM {$table} WHERE 1 {$searchstring}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_events")); $total = $ligne["TCOUNT"]; } else { $sql = "SELECT COUNT(*) as TCOUNT FROM {$table}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_events")); $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}"; if (isset($_GET["verbose"])) { echo "<hr><code>{$sql}</code></hr>"; } $results = $q->QUERY_SQL($sql, "artica_events"); if (!$q->ok) { json_error_show($q->mysql_error, 1); } if (mysql_num_rows($results) == 0) { json_error_show("{$table} no data", 1); } $data = array(); $data['page'] = 1; $data['total'] = $total; $data['rows'] = array(); //if(mysql_num_rows($results)==0){$data['rows'][] = array('id' => $ligne[time()],'cell' => array($sql,"", "",""));} while ($ligne = mysql_fetch_assoc($results)) { $familysite = $ligne["familysite"]; $size = FormatBytes($ligne["size"] / 1024); $data['rows'][] = array('id' => md5(serialize($ligne)), 'cell' => array("<span style='font-size:18px'>{$familysite}</span>", "<span style='font-size:18px'>{$size}</span>")); } echo json_encode($data); }
function Save() { $q = new mysql_meta(); if (!$q->FIELD_EXISTS("metahosts", "cloneFrom")) { $q->QUERY_SQL("ALTER TABLE `metahosts` ADD `cloneFrom` VARCHAR(90),ADD INDEX ( `cloneFrom` )"); if (!$q->ok) { echo $q->mysql_error . "\n"; return; } } $q->QUERY_SQL("UPDATE metahosts SET cloneFrom='{$_POST["cloneFrom"]}' WHERE uuid='{$_POST["uuid"]}'"); if (!$q->ok) { echo $q->mysql_error; return; } $sock = new sockets(); $sock->getFrameWork("artica.php?meta-metaclient-clonesource=yes&uuid={$_POST["uuid"]}"); }
function popup() { $tpl = new templates(); $page = CurrentPageName(); $q = new mysql_meta(); $zdate = $tpl->javascript_parse_text("{time}"); $ipaddr = $tpl->javascript_parse_text("{ipaddr}"); $mac = $tpl->javascript_parse_text("{MAC}"); $familysite = $tpl->javascript_parse_text("{sitename}"); $uid = $tpl->javascript_parse_text("{members}"); $size = $tpl->javascript_parse_text("{size}"); $hits = $tpl->javascript_parse_text("{hits}"); $t = time(); $title = $tpl->javascript_parse_text("{this_hour}:" . $q->uuid_to_host($_GET["uuid"])); $suffix = suffix(); $html = "\n\t<table class='flexRT{$t}' style='display:none' id='flexRT{$t}'></table>\n\t<script>\n\tfunction StartLogsSquidTable{$t}(){\n\n\t\$('#flexRT{$t}').flexigrid({\n\turl: '{$page}?list=yes{$suffix}',\n\tdataType: 'json',\n\tcolModel : [\n\t{display: '{$zdate}', name : 'zDate', width : 61, sortable : true, align: 'left'},\n\t{display: '{$uid}', name : 'uid', width :112, sortable : true, align: 'left'},\n\t{display: '{$mac}', name : 'mac', width :142, sortable : true, align: 'left'},\n\t{display: '{$ipaddr}', name : 'ipaddr', width :142, sortable : true, align: 'left'},\n\t{display: '{$familysite}', name : 'sitename', width : 169, sortable : true, align: 'left'},\n\t{display: '{$hits}', name : 'hits', width : 66, sortable : true, align: 'right'},\n\t{display: '{$size}', name : 'size', width : 142, sortable : true, align: 'right'},\n\t],\n\n\tsearchitems : [\n\t{display: '{$uid}', name : 'uid'},\n\t{display: '{$mac}', name : 'mac'},\n\t{display: '{$ipaddr}', name : 'ipaddr'},\n\t{display: '{$familysite}', name : 'sitename'},\n\t],\n\tsortname: 'zDate',\n\tsortorder: 'desc',\n\tusepager: true,\n\ttitle: '<span style=font-size:18px>{$title}</span>',\n\tuseRp: true,\n\trp: 100,\n\tshowTableToggleBtn: false,\n\twidth: '99%',\n\theight: 450,\n\tsingleSelect: true,\n\trpOptions: [10, 20, 30, 50,100,200,500,1000,1500]\n\n});\n\n}\n\nStartLogsSquidTable{$t}();\n</script>\n"; echo $html; }
function GetGroups($uuid) { $q = new mysql_meta(); $f = array(); $sql = "SELECT metagroups.groupname,\n\tmetahosts.uuid,metagroups_link.zmd5\n\tFROM metahosts,metagroups_link,metagroups WHERE\n\tmetagroups_link.uuid=metahosts.uuid\n\tAND metagroups.ID=metagroups_link.gpid\n\tAND metahosts.uuid='{$uuid}' ORDER BY metagroups.groupname"; $results = $q->QUERY_SQL($sql); if (!$q->ok) { return "<li>{$q->mysql_error}</li>"; } while ($ligne = mysql_fetch_assoc($results)) { $f[] = "<li><a href=\"javascript:blur()\" OnClick=\"javascript:Loadjs('artica-meta.menus.php?gpid=1');\"\n\t\tstyle='text-decoration:underline'>{$ligne["groupname"]}</a>"; } if (count($f) > 0) { return "<ul style='margin-top:10px'>" . @implode("", $f) . "</ul>"; } }
function Replicate_policy_to_group($gpid, $content) { $q = new mysql_meta(); $sql = "SELECT uuid FROM metagroups_link WHERE gpid='{$gpid}'"; $results = $q->QUERY_SQL($sql); if (!$q->ok) { meta_admin_mysql(0, "Fatal error: Mysql Error", $q->mysql_error . "\n{$sql}", __FILE__, __LINE__); return; } $md5Content = md5($content); $content = mysql_escape_string2($content); if (mysql_num_rows($results) == 0) { return; } while ($ligne = mysql_fetch_assoc($results)) { $uuid = $ligne["uuid"]; $md5 = md5("{$md5Content}{$uuid}"); $q->QUERY_SQL("DELETE FROM `policies_storage` WHERE `zmd5`='{$md5}'"); $sql = "INSERT IGNORE INTO `policies_storage` (zmd5,uuid,policy_content) VALUES ('{$md5}','{$uuid}','{$content}')"; $q->QUERY_SQL($sql); if (!$q->ok) { meta_admin_mysql(0, "Fatal error: Mysql Error", $q->mysql_error . "\n{$sql}", __FILE__, __LINE__); continue; } $q->CreateOrder($uuid, "POLICY", array("VALUE" => $md5)); } }
function search() { $MyPage = CurrentPageName(); $page = CurrentPageName(); $tpl = new templates(); $sock = new sockets(); $q = new mysql_meta(); $table = "policies"; $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']; } if ($searchstring != null) { $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__ . "]: {$q->mysql_error}.<br>{$sql}", 1); } $total = $ligne["tcount"]; } else { $total = $q->COUNT_ROWS($table); } 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 = "18"; $style = "<span style='font-size:{$fontsize}px'>"; $free_text = $tpl->javascript_parse_text("{free}"); $computers = $tpl->javascript_parse_text("{computers}"); $overloaded_text = $tpl->javascript_parse_text("{overloaded}"); while ($ligne = mysql_fetch_assoc($results)) { $icon_warning_32 = "warning32.png"; $icon_red_32 = "32-red.png"; $icon = "ok-32.png"; $icon_disabled = "ok32-grey.png"; if ($switch == 1) { $icon_warning_32 = "22-warn.png"; $icon_red_32 = "22-red.png"; $icon = "ok22.png"; } $policy_name = utf8_encode($ligne["policy_name"]); $policy_type = $tpl->_ENGINE_parse_body($q->policy_type[$ligne["policy_type"]]); $delete = imgsimple("delete-32.png", null, "Loadjs('{$MyPage}?delete-js=yes&ID={$ligne["ID"]}')"); if ($_GET["function"] != null) { $delete = imgsimple("arrow-right-32.png", null, "{$_GET["function"]}('{$ligne["ID"]}')"); } if (trim($policy_type) == null) { $policy_type = "{policy_type} ID:{$ligne["policy_type"]}"; } $ligneCount = mysql_fetch_array($q->QUERY_SQL("SELECT COUNT(zmd5) as tcount FROM metapolicies_link WHERE `policy-id`='{$ligne["ID"]}'")); $CountDeGroup = $ligneCount["tcount"]; $js = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('{$MyPage}?policy-js=yes&ID={$ligne["ID"]}');\" style='text-decoration:underline'>"; $cell = array(); $cell[] = "<img src=\"img/{$icon}\">"; $cell[] = "{$style}{$js}{$policy_name}</a></span>"; $cell[] = "{$style}{$policy_type}</span>"; $cell[] = "{$style}{$CountDeGroup}</span>"; $cell[] = "{$style}{$delete}</span>"; $data['rows'][] = array('id' => $ligne['uuid'], 'cell' => $cell); } echo json_encode($data); }
function content_search() { $MyPage = CurrentPageName(); $page = CurrentPageName(); $tpl = new templates(); $sock = new sockets(); $q = new mysql_meta(); $table = "snapshots"; $database = null; $ID = $_GET["ID"]; if (!$q->TABLE_EXISTS($table, $database)) { json_error_show("no data - no table"); } $searchstring = string_to_flexquery(); $page = 1; $q = new mysql_meta(); $sql = "SELECT `content` FROM {$table} WHERE ID='{$ID}'"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, $database)); $MAIN = unserialize($ligne["content"]); $size_content = strlen($ligne["content"]); if (!is_array($MAIN)) { json_error_show("no data ID:{$ID} Size:{$size_content}"); } $searchstring = string_to_flexregex(); $total = count($MAIN); if (isset($_POST['rp'])) { $rp = $_POST['rp']; } if (!is_numeric($rp)) { $rp = 50; } $pageStart = ($page - 1) * $rp; $limitSql = "LIMIT {$pageStart}, {$rp}"; $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'"; $c = 0; while (list($filename, $size) = each($MAIN)) { $sizeText = "{$size} Bytes"; if ($size > 1024) { $sizeText = FormatBytes($size / 1024); } if ($searchstring != null) { if (!preg_match("#{$searchstring}#i", $filename . "{$sizeText}")) { continue; } } $c++; $key = md5($filename); $size = FormatBytes($size / 1024); $cell = array(); $cell[] = "<span {$style}>{$filename}</a></span>"; $cell[] = "<span {$style}>{$sizeText}</a></span>"; $data['rows'][] = array('id' => $key, 'cell' => $cell); } $data['total'] = $c; echo json_encode($data); }
function page() { $page = CurrentPageName(); $tpl = new templates(); $t = time(); $new_group = $tpl->javascript_parse_text("{new_group}"); $groups = $tpl->javascript_parse_text("{groups2}"); $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}"); $orders = $tpl->javascript_parse_text("{orders}"); $restore = $tpl->javascript_parse_text("{restore}"); $create_a_snapshot = $tpl->javascript_parse_text("{create_a_snapshot}"); $link_all_hosts = $tpl->javascript_parse_text("{link_all_hosts}"); $link_all_hosts_ask = $tpl->javascript_parse_text("{link_all_hosts_ask}"); $date = $tpl->javascript_parse_text("{date}"); $size = $tpl->javascript_parse_text("{subject}"); $title = $tpl->javascript_parse_text("{system_health_checking}"); $download = $tpl->javascript_parse_text("{download2}"); $delete_all = $tpl->javascript_parse_text("{empty}"); $t = time(); $delete = "{display: 'delete', name : 'icon3', width : 35, sortable : false, align: 'left'},"; $categorysize = 387; $tag = $tpl->javascript_parse_text("{tag}"); $q = new mysql_meta(); $ligne = mysql_fetch_array($q->QUERY_SQL("SELECT policy_name,policy_type FROM policies WHERE ID='{$_GET["policy-id"]}'")); $groupname = $tpl->javascript_parse_text($ligne["policy_name"]); $buttons = "\n\tbuttons : [\n\t{name: '<strong style=font-size:18px>{$delete_all}</strong>', bclass: 'Delz', onpress : run{$t}},\n\t\n\t\n\t],"; $html = "\n\n\t<table class='ARTICA_HEALTH_PERFS_TABLE' style='display: none' id='ARTICA_HEALTH_PERFS_TABLE' style='width:100%'></table>\n\t<script>\n\t\$(document).ready(function(){\n\t\$('#ARTICA_HEALTH_PERFS_TABLE').flexigrid({\n\turl: '{$page}?search=yes',\n\tdataType: 'json',\n\tcolModel : [\n\t{display: '<span style=font-size:18px>{$date}</span>', name : 'zDate', width : 538, sortable : true, align: 'left'},\n\t{display: '<span style=font-size:18px>{$size}</span>', name : 'subject', width : 505, sortable : true, align: 'right'},\n\t{display: '<span style=font-size:18px>{$download}</span>', name : 'download', width : 150, sortable : false, align: 'center'},\n\t{display: ' ', name : 'delete', width : 70, sortable : false, align: 'center'},\n\t\n\n\t],\n\t{$buttons}\n\tsearchitems : [\n\t{display: '{$date}', name : 'zDate'},\n\t\n\n\t],\n\tsortname: 'zDate',\n\tsortorder: 'desc',\n\tusepager: true,\n\ttitle: '<strong style=font-size:30px>{$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\n});\n});\n\nfunction run{$t}(){\n\tvar XHR = new XHRConnection();\n\tXHR.appendData('deleteall','yes');\n\tXHR.sendAndLoad('{$page}', 'POST',xLinkEdHosts{$t});\n}\n\nvar xLinkEdHosts{$t}= function (obj) {\n\tvar res=obj.responseText;\n\tif (res.length>3){ alert(res); return; }\n\t\$('#ARTICA_HEALTH_PERFS_TABLE').flexReload();\n\t\n}\t\t\t\n\t\n\nfunction LinkEdHosts{$t}(uuid){\n\tvar XHR = new XHRConnection();\n\tXHR.appendData('link-host',uuid);\n\tXHR.appendData('gpid','{$_GET["ID"]}');\n\tXHR.sendAndLoad('{$page}', 'POST',xLinkEdHosts{$t});\n}\n\nfunction LinkHostsAll{$t}(){\n\tif(!confirm('{$link_all_hosts_ask}')){return;}\n\tvar XHR = new XHRConnection();\n\tXHR.appendData('link-all','{$_GET["ID"]}');\n\tXHR.sendAndLoad('{$page}', 'POST',xLinkEdHosts{$t});\n}\n\nfunction Orders{$t}(){\n\tLoadjs('artica-meta.menus.php?gpid={$_GET["ID"]}');\n}\n\nfunction Upload{$t}(){\n\tLoadjs('snapshots.upload.php');\n}\n\n</script>"; echo $html; }
function meta_server_status() { include_once 'ressources/class.mysql-meta.inc'; $page = CurrentPageName(); $ini = new Bs_IniHandler(); $users = new usersMenus(); $tpl = new templates(); $sock = new sockets(); $icon = "disks-128-ok.png"; $GotoMeta = "GoToMeta()"; if (!$users->AsArticaMetaAdmin) { $GotoMeta = "blur();"; } $c = 0; $q = new mysql_meta(); $results = $q->QUERY_SQL("SELECT * FROM metahosts"); if (!$q->ok) { $err[] = proxy_status_warning("MySQL Error !!!", "{$q->mysql_error}", "blur();"); } $ArticaMetaPooling = intval($sock->GET_INFO("ArticaMetaPooling")); $ArticaMetaUseSendClient = intval($sock->GET_INFO("ArticaMetaUseSendClient")); $ArticaLinkAutoconnect = intval($sock->GET_INFO("ArticaLinkAutoconnect")); $MetaUfdbArticaVer = intval($sock->GET_INFO("MetaUfdbArticaVer")); if ($ArticaMetaPooling == 0) { $ArticaMetaPooling = 15; } while ($ligne = mysql_fetch_assoc($results)) { $load = $ligne["load"]; $uuid = $ligne["uuid"]; $PROXYEMERG = $ligne["PROXYEMERG"]; $hostname = $ligne["hostname"]; if (strpos($hostname, ".") > 0) { $xtr = explode(".", $hostname); $hostname = $xtr[0]; } $CPU_NUMBER_MAX = $ligne["CPU_NUMBER"] + 1.5; $updated = $ligne["updated"]; $mem_perc = $ligne["mem_perc"]; $WINDOWSAD = $ligne["WINDOWSAD"]; $ADEMERG = intval($ligne["ADEMERG"]); if ($load > $CPU_NUMBER_MAX) { $err[] = proxy_status_warning("{$hostname}: {overloaded} {$load}", "{$hostname}", "Loadjs('artica-meta.cpustats.php?js=yes&uuid={$uuid}');"); } if ($PROXYEMERG == 1) { $err[] = proxy_status_warning("{$hostname}: {proxy_in_emergency_mode}", "{$hostname}", "Loadjs('artica-meta.urgency.php?uuid={$uuid}');"); } if ($WINDOWSAD == 1) { if ($ADEMERG == 1) { $err[] = proxy_status_warning("{$hostname}: {activedirectory_emergency_mode}", "{$hostname}", "Loadjs('artica-meta.menus.php?activedirectory-emergency-disable-js=yes&uuid={$uuid}&gpid=0');"); } } if ($mem_perc > 80) { $mem_total = FormatBytes($ligne["mem_total"]); $alerts[] = status_important_event("{$hostname}: {memory_exceed_80} «{$mem_perc}%/{$mem_total}»", "{$hostname}", "Loadjs('artica-meta.cpustats.php?js=yes&uuid={$uuid}');"); } $xtime = strtotime($updated); $diff = time_diff_min($xtime); $Difftext = distanceOfTimeInWords($xtime, time(), true); if ($diff > $ArticaMetaPooling * 4) { $err[] = proxy_status_warning("{$hostname}: {did_not_talk_with_meta}", "{since} {$Difftext}", "Loadjs('artica-meta.cpustats.php?js=yes&uuid={$uuid}');"); } $c++; } if (count($alerts) > 0) { $icon = "disks-128-warn.png"; } if (count($err) > 0) { $icon = "disks-128-red.png"; } $master_version = @file_get_contents("VERSION"); $html = "\n\t<table style='width:100%'>\n\t<tr>\n\t<td valign='top' style='width:128px' >\n\t<img src='img/{$icon}'>\n\t</td>\n\t<td>\n\t<table style='width:100%'>\n\t<tr>\n\t<td style='font-size:30px'>\n\t" . $tpl->_ENGINE_parse_body(texttooltip("Artica Meta", "Artica Meta", "{$GotoMeta}")) . "\n\t<div style='width:100%;text-align:right'><span style='font-size:16px'>{version}:{$master_version}</div>\n\t</td>\n\t</tr>\n\t<tr>\n\t<td colspan=2> </td>\n\t</tR>\n\t<tr>\n\t\t<td style='font-size:26px'>\n\t\t\t<a href=\"javascript:blur();\"\n\t\t\tOnClick=\"javascript:{$GotoMeta}\"\n\t\t\tstyle='text-decoration:underline'>{servers}: " . FormatNumber($c) . "</a>\n\t\t</td>\n\t</tr>\n\t<tr>\n\t" . @implode("", $err) . "\n\t" . @implode("", $alerts) . "\n\t</table>\n</td>\n</tr>\n</table>\n"; $html = $tpl->_ENGINE_parse_body($html); return $html; }
function SearchComputers() { $tpl = new templates(); $MyPage = CurrentPageName(); $q = new mysql_meta(); $fontsize = "14px"; $cs = 0; $page = 1; if (isset($_POST['rp'])) { $rp = $_POST['rp']; } $pageStart = ($page - 1) * $rp; $limitSql = "LIMIT {$pageStart}, {$rp}"; $_POST["query"] = trim($_POST["query"]); $FORCE = 1; if ($_GET["uuid"] != null) { $FORCE = "uuid='{$_GET["uuid"]}'"; } $search = '%'; $table = "networks_hosts"; $page = 1; $total = 0; if ($q->COUNT_ROWS($table) == 0) { json_error_show("no data", 1); } if (isset($_POST["sortname"])) { if ($_POST["sortname"] != null) { $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}"; } } if (isset($_POST['page'])) { $page = $_POST['page']; } if (isset($_POST['rp'])) { $rp = $_POST['rp']; } 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 ($searchstring != null) { $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE {$FORCE} {$searchstring}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_events")); if (!$q->ok) { if (preg_match("#marked as crashed#", $q->mysql_error)) { $q->QUERY_SQL("DROP TABLE `{$table}`", "artica_events"); } } $total = $ligne["TCOUNT"]; } else { if (strlen($FORCE) > 2) { $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE {$FORCE}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_events")); if (!$q->ok) { if (preg_match("#marked as crashed#", $q->mysql_error)) { $q->QUERY_SQL("DROP TABLE `{$table}`", "artica_events"); } } $total = $ligne["TCOUNT"]; } else { $total = $q->COUNT_ROWS($table, "artica_events"); } } 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 {$FORCE} {$searchstring} {$ORDER} {$limitSql}"; $results = $q->QUERY_SQL($sql, "artica_events"); if (!$q->ok) { if (preg_match("#marked as crashed#", $q->mysql_error)) { $q->QUERY_SQL("DROP TABLE `{$table}`", "artica_events"); } } if (!$q->ok) { json_error_show($q->mysql_error . "<br>{$sql}", 0); } $data = array(); $data['page'] = $page; $data['total'] = $total; $data['rows'] = array(); $CurrentPage = CurrentPageName(); if (mysql_num_rows($results) == 0) { json_error_show("no data"); } $uuid = urlencode($_GET["uuid"]); while ($ligne = mysql_fetch_array($results, MYSQL_ASSOC)) { if ($ligne["OSNAME"] == "Unknown") { $ligne["OSNAME"] = null; } $cs++; $macenc = urlencode($ligne["MAC"]); $jslink = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('{$MyPage}?mac-js={$macenc}&uuid={$uuid}&t={$_GET["t"]}');\"\n\t\tstyle='font-size:{$fontsize};text-decoration:underline'>"; $data['rows'][] = array('id' => md5(serialize($ligne)), 'cell' => array("<span style='font-size:{$fontsize}'>{$jslink}{$ligne["hostname"]}</a></span>", "<span style='font-size:{$fontsize}'>{$jslink}{$ligne["IPADDR"]}</a></span>", "<span style='font-size:{$fontsize}'>{$jslink}{$ligne["MAC"]}</a></span>", "<span style='font-size:{$fontsize}'>{$jslink}{$ligne["OSNAME"]}</a></span>", "<span style='font-size:{$fontsize}'>{$jslink}{$ligne["username"]}</a></span>", "")); } echo json_encode($data); }
function showlist(){ $page=1; $q=new mysql_squid_builder(); $tablesrc="WEEK_RTTH"; if($_GET["uuid"]<>null){ $q=new mysql_meta(); $tablesrc="{$_GET["uuid"]}_WEEK_RTTH"; } $table="(SELECT SUM(size) as size,COUNT(MAC) as members,familysite FROM `$tablesrc` GROUP BY familysite) as t"; 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($searchstring<>null){ $sql="SELECT COUNT(*) as TCOUNT FROM $table WHERE 1 $searchstring"; $ligne=mysql_fetch_array($q->QUERY_SQL($sql,"artica_events")); $total = $ligne["TCOUNT"]; }else{ $sql="SELECT COUNT(*) as TCOUNT FROM $table"; $ligne=mysql_fetch_array($q->QUERY_SQL($sql,"artica_events")); $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"; if(isset($_GET["verbose"])){echo "<hr><code>$sql</code></hr>";} $results = $q->QUERY_SQL($sql,"artica_events"); if(!$q->ok){json_error_show($q->mysql_error,1);} if(mysql_num_rows($results)==0){ json_error_show("$table no data",1); } $data = array(); $data['page'] = 1; $data['total'] = mysql_num_rows($results); $data['rows'] = array(); //if(mysql_num_rows($results)==0){$data['rows'][] = array('id' => $ligne[time()],'cell' => array($sql,"", "",""));} while ($ligne = mysql_fetch_assoc($results)) { $ipaddr=$ligne["ipaddr"]; $mac=$ligne["MAC"]; $familysite=$ligne["familysite"]; $uid=$ligne["uid"]; $size=FormatBytes($ligne["size"]/1024); $macenc=urlencode($mac); $category=$ligne["category"]; if($category<>null){$category=" <i>($category)</i>";} $url="<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('squid.website-stats.currentmonth.php?field=familysite&value=$familysite',true);\" style='font-size:22px;text-decoration:underline'>"; $data['rows'][] = array( 'id' => md5(serialize($ligne)), 'cell' => array("<span style='font-size:22px'>$url$familysite</a>$category</span>", "<span style='font-size:22px'>{$ligne["members"]}</span>", "<span style='font-size:22px'>$size</span>" ) ); } echo json_encode($data); }
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); }
function table_list() { $tpl = new templates(); $MyPage = CurrentPageName(); $q = new mysql_meta(); $fontsize = "16px"; $cs = 0; $page = 1; if (isset($_POST['rp'])) { $rp = $_POST['rp']; } if (!is_numeric($rp)) { $rp = 50; } $pageStart = ($page - 1) * $rp; $limitSql = "LIMIT {$pageStart}, {$rp}"; $_POST["query"] = trim($_POST["query"]); $FORCE = "uuid='{$_GET["uuid"]}'"; $search = '%'; $table = "philesight"; if ($_GET["dev"] != null) { $FORCE = " ((partition='{$_GET["dev"]}') OR (hd='{$_GET["dev"]}')) AND (uuid='{$_GET["uuid"]}')"; } $page = 1; if (!$q->TABLE_EXISTS($table, "artica_backup")) { $q->check_storage_table(); } if (!$q->TABLE_EXISTS($table, "artica_backup")) { json_error_show("{$table} no such table", 1); } $total = 0; if ($q->COUNT_ROWS($table, "artica_backup") == 0) { json_error_show("no data", 1); } $searchstring = string_to_flexquery(); if ($searchstring != null) { $sql = "SELECT COUNT(*) as TCOUNT FROM `{$table}` WHERE {$FORCE} {$searchstring}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql, "artica_backup")); if (!$q->ok) { if (preg_match("#marked as crashed#", $q->mysql_error)) { $q->QUERY_SQL("DROP TABLE `{$table}`", "artica_events"); } } $total = $ligne["TCOUNT"]; } else { $total = $q->COUNT_ROWS($table, "artica_backup"); } if (isset($_POST['rp'])) { $rp = $_POST['rp']; } if (!is_numeric($rp)) { $rp = 50; } $pageStart = ($page - 1) * $rp; $limitSql = "LIMIT {$pageStart}, {$rp}"; if (isset($_POST["sortname"])) { if ($_POST["sortname"] != null) { $ORDER = "ORDER BY {$_POST["sortname"]} {$_POST["sortorder"]}"; } } $sql = "SELECT * FROM `{$table}` WHERE {$FORCE} {$searchstring} {$ORDER} {$limitSql}"; $results = $q->QUERY_SQL($sql, "artica_backup"); if (!$q->ok) { if (preg_match("#marked as crashed#", $q->mysql_error)) { $q->QUERY_SQL("DROP TABLE `{$table}`", "artica_events"); } } if (!$q->ok) { json_error_show($q->mysql_error . "<br>{$sql}", 0); } $data = array(); $data['page'] = $page; $data['total'] = $total; $data['rows'] = array(); $CurrentPage = CurrentPageName(); if (mysql_num_rows($results) == 0) { json_error_show("no data"); } $uuid = urlencode($_GET["uuid"]); while ($ligne = mysql_fetch_array($results, MYSQL_ASSOC)) { $color = "black"; $icon = " "; $directory = $ligne["directory"]; $md5 = md5($directory); $partition = $ligne["partition"]; $hd = $ligne["hd"]; $maxtime = $ligne["maxtime"]; $lastscan = $ligne["lastscan"]; $USED = $ligne["USED"]; $md5 = $ligne["zmd5"]; $FREEMB = $ligne["FREEMB"]; if ($lastscan > 0) { $lastscan = date("Y-m-d H:i:s", $lastscan); } $FREEMB = FormatBytes($FREEMB * 1024); $directoryenc = urlencode($directory); $jslink = "<a href=\"javascript:blur();\"\n\tOnClick=\"javascript:Loadjs('{$MyPage}?directory-js=yes&directory={$directoryenc}');\"\n\tstyle='font-size:{$fontsize};text-decoration:underline;color:{$color}'>"; $distance = $tpl->_ENGINE_parse_body(distanceOfTimeInWords($ligne["lastscan"], time(), true)); $icon = imgsimple("graph-32.png", null, "Loadjs('{$MyPage}?graph-js={$directoryenc}&uuid={$_GET["uuid"]}&md5={$md5}')"); $delete = imgsimple("delete-32.png", null, "Loadjs('{$MyPage}?delete-js={$directoryenc}&uuid={$_GET["uuid"]}')"); $data['rows'][] = array('id' => md5(serialize($ligne)), 'cell' => array("<span style='font-size:{$fontsize};color:{$color}'>{$jslink}{$lastscan}</a></span><br><i>{$distance}</i>", "<span style='font-size:{$fontsize};color:{$color}'>{$jslink}{$directory}</a></span>", "<span style='font-size:{$fontsize};color:{$color}'>{$jslink}{$partition}</a></span>", "<span style='font-size:{$fontsize};color:{$color}'>{$jslink}{$hd}</a></span>", "<span style='font-size:{$fontsize};color:{$color}'>{$jslink}{$USED}%</a></span>", "<span style='font-size:{$fontsize};color:{$color}'>{$jslink}{$FREEMB}</a></span>", "<span style='font-size:{$fontsize};color:{$color}'>{$icon}</a></span>")); } echo json_encode($data); }
function ParseDB_FILE($path, $uuid = null, $asmeta = false) { $unix = new unix(); if (!is_file($path)) { return; } echo "Open {$path}\n"; $db_con = dba_open($path, "r", "db4"); if (!$db_con) { if ($asmeta) { meta_admin_mysql(1, "DB open failed {$path}", null, __FILE__, __LINE__); } echo "DB open failed\n"; die; } $mainkey = dba_firstkey($db_con); while ($mainkey != false) { $val = 0; $data = unserialize(dba_fetch($mainkey, $db_con)); $mainkey = dba_nextkey($db_con); if (!is_array($data)) { continue; } $q = new mysql_squid_builder(); $qCommon = new mysql_squid_builder(); if ($uuid != null) { $q = new mysql_stats($uuid); } if ($asmeta) { $q = new mysql_meta(); } if (!isset($data["HOURLY"])) { continue; } if (!isset($data["WWW"])) { continue; } $category = null; $ipaddr = mysql_escape_string2($data["IPADDR"]); if (isset($data["MAC"])) { $mac = mysql_escape_string2($data["MAC"]); } $uid = mysql_escape_string2($data["UID"]); $familysite = mysql_escape_string2($data["WWW"]); if (isset($data["category"])) { $category = mysql_escape_string2($data["category"]); } if ($uid == null) { $uid = $qCommon->UID_FROM_MAC($data["MAC"]); } if ($uid == null) { $uid = $qCommon->UID_FROM_IP($data["IPADDR"]); } $uid = mysql_escape_string2($uid); $length = strlen($ipaddr) + strlen($mac) + strlen($uid) + strlen($familysite); if ($length == 0) { continue; } while (list($day, $array) = each($data["HOURLY"])) { while (list($hour, $size) = each($array)) { $md5 = md5("'{$ipaddr}','{$mac}','{$uid}','{$familysite}','{$day}','{$hour}','{$size}','{$category}'"); $wwwUH[] = "('{$md5}','{$ipaddr}','{$mac}','{$uid}','{$familysite}','{$day}','{$hour}','{$size}','{$category}')"; if ($GLOBALS["VERBOSE"]) { echo "('{$md5}','{$ipaddr}','{$mac}','{$uid}','{$familysite}','{$day}','{$hour}','{$size}','{$category}')\n"; } } } } dba_close($db_con); $TABLE_WEEK_RTTH = "WEEK_RTTH"; $ENGINE = "MEMORY"; if ($asmeta) { $TABLE_WEEK_RTTH = "{$uuid}_WEEK_RTTH"; $ENGINE = "MYISAM"; } if ($asmeta) { xmeta_events("DROP TABLE `{$TABLE_WEEK_RTTH}`", __FUNCTION__, __FILE__, __LINE__); } $q->QUERY_SQL("DROP TABLE `{$TABLE_WEEK_RTTH}`"); if ($asmeta) { xmeta_events("CREATE TABLE `{$TABLE_WEEK_RTTH}`", __FUNCTION__, __FILE__, __LINE__); } $q->QUERY_SQL("CREATE TABLE IF NOT EXISTS `{$TABLE_WEEK_RTTH}` (\n\t\t\t`zmd5` varchar(90) NOT NULL,\n\t\t\t`familysite` varchar(128) NOT NULL,\n\t\t\t`ipaddr` varchar(50) NOT NULL DEFAULT '',\n\t\t\t`day` smallint(2) NOT NULL,\n\t\t\t`hour` smallint(2) NOT NULL,\n\t\t\t`uid` varchar(128) NOT NULL,\n\t\t\t`MAC` varchar(20) NOT NULL,\n\t\t\t`size` BIGINT UNSIGNED NOT NULL,\n\t\t\t`category` varchar(90) NOT NULL,\n\t\t\tPRIMARY KEY `zmd5` (`zmd5`),\n\t\t\tKEY `familysite` (`familysite`),\n\t\t\tKEY `ipaddr` (`ipaddr`),\n\t\t\tKEY `uid` (`uid`),\n\t\t\tKEY `category` (`category`),\n\t\t\tKEY `hour` (`hour`),\n\t\t\tKEY `day` (`day`),\n\t\t\tKEY `MAC` (`MAC`)\n\t) ENGINE={$ENGINE};"); if (!$q->ok) { if ($asmeta) { meta_admin_mysql(1, "MySQL error", $q->mysql_error, __FILE__, __LINE__); } echo $q->mysql_error; return; } $q->QUERY_SQL("INSERT IGNORE INTO `{$TABLE_WEEK_RTTH}` ( `zmd5`,`ipaddr`,`MAC`,`uid`,familysite,`day`,`hour`,`size`,`category`) VALUES " . @implode(",", $wwwUH)); if (!$q->ok) { if ($asmeta) { meta_admin_mysql(1, "MySQL error", $q->mysql_error, __FILE__, __LINE__); } echo $q->mysql_error; return; } if ($asmeta) { xmeta_events("Success parsing {$path} adding " . count($wwwUH) . " elements", __FUNCTION__, __FILE__, __LINE__); return; } $sock = new sockets(); $EnableArticaMetaClient = intval($sock->GET_INFO("EnableArticaMetaClient")); $EnableSquidRemoteMySQL = intval($sock->GET_INFO("EnableSquidRemoteMySQL")); if ($EnableSquidRemoteMySQL == 1) { return; } if ($EnableArticaMetaClient == 0) { return; } $DIR_TEMP = $unix->TEMP_DIR(); if (!$unix->compress($path, "{$DIR_TEMP}/SQUID_QUOTASIZE.gz")) { meta_admin_mysql(1, "Unable to compress {$path}", null, __FILE__, __LINE__); @unlink("{$DIR_TEMP}/SQUID_QUOTASIZE.gz"); return; } $artica_meta = new artica_meta(); if (!$artica_meta->SendFile("{$DIR_TEMP}/SQUID_QUOTASIZE.gz", "SQUID_QUOTASIZE")) { meta_admin_mysql(1, "Unable to updload {$DIR_TEMP}/SQUID_QUOTASIZE.gz", null, __FILE__, __LINE__); } @unlink("{$DIR_TEMP}/SQUID_QUOTASIZE.gz"); }
function showlist(){ $page=1; $q=new mysql_squid_builder(); $table=date("Ymd")."_daccess"; if($_GET["uuid"]<>null){ $q=new mysql_meta(); $table="{$_GET["uuid"]}_CACHED_SITES"; } 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($searchstring<>null){ $sql="SELECT COUNT(*) as TCOUNT FROM $table WHERE 1 $searchstring"; $ligne=mysql_fetch_array($q->QUERY_SQL($sql,"artica_events")); $total = $ligne["TCOUNT"]; }else{ $sql="SELECT COUNT(*) as TCOUNT FROM $table"; $ligne=mysql_fetch_array($q->QUERY_SQL($sql,"artica_events")); $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"; if(isset($_GET["verbose"])){echo "<hr><code>$sql</code></hr>";} $results = $q->QUERY_SQL($sql,"artica_events"); if(!$q->ok){json_error_show($q->mysql_error,1);} if(mysql_num_rows($results)==0){ json_error_show("$table no data",1); } $data = array(); $data['page'] = 1; $data['total'] = mysql_num_rows($results); $data['rows'] = array(); //if(mysql_num_rows($results)==0){$data['rows'][] = array('id' => $ligne[time()],'cell' => array($sql,"", "",""));} while ($ligne = mysql_fetch_assoc($results)) { $familysite=$ligne["familysite"]; $size=FormatBytes($ligne["size"]/1024); $hits=FormatNumber($ligne["hits"]); $macenc=urlencode($ligne["MAC"]); $macuri="<a href=\"javascript:blur();\" Onclick=\"javascript:Loadjs('squid.nodes.php?node-infos-js=yes&MAC=$macenc',true);\" style='text-decoration:underline;font-size:18px'>"; if(strlen($ligne["hour"])==1){$ligne["hour"]="0{$ligne["hour"]}";} $data['rows'][] = array( 'id' => md5(serialize($ligne)), 'cell' => array( "<span style='font-size:16px'>{$ligne["hour"]}h</span>", "<span style='font-size:16px'>$familysite</span>", "<span style='font-size:16px'>{$ligne["category"]}</span>", "<span style='font-size:16px'>{$ligne["uid"]}</span>", "<span style='font-size:16px'>{$ligne["ipaddr"]}</span>", "<span style='font-size:16px'>$macuri{$ligne["MAC"]}</a></span>", "<span style='font-size:16px'>$hits</span>", "<span style='font-size:16px'>$size</span>" ) ); } echo json_encode($data); }
function add_node() { $sock = new sockets(); $ArticaMetaAddNewServ = unserialize($sock->GET_INFO("ArticaMetaAddNewServ")); $ArticaMetaHost = $ArticaMetaAddNewServ["ArticaMetaHost"]; $ArticaMetaPort = $ArticaMetaAddNewServ["ArticaMetaPort"]; $ArticaMetaUsername = $ArticaMetaAddNewServ["ArticaMetaUsername"]; $ArticaMetaPassword = $ArticaMetaAddNewServ["ArticaMetaPassword"]; $change_uuid = $ArticaMetaAddNewServ["change_uuid"]; echo "ArticaMetaHost.........: {$ArticaMetaHost}\n"; echo "ArticaMetaPort.........: {$ArticaMetaPort}\n"; echo "ArticaMetaUsername.....: {$ArticaMetaUsername}\n"; echo "Testing authentication...\n"; add_node_progress("Authenticate to {$ArticaMetaHost}:{$ArticaMetaPort}", 10); $array["username"] = $ArticaMetaUsername; $array["password"] = $ArticaMetaPassword; $ident = urlencode(base64_encode(serialize($array))); $curl = new ccurl("https://{$ArticaMetaHost}:{$ArticaMetaPort}/artica.meta.listener.php?test-local-ident={$ident}"); $curl->NoHTTP_POST = true; $curl->NoLocalProxy(); $curl->Timeout = 120; if (!$curl->get()) { echo @implode("\n", $curl->errors); add_node_progress("{$curl->error}", 110); die; } if (!preg_match("#<ARTICA_META>(.+?)</ARTICA_META>#is", $curl->data, $re)) { echo "Expected <ARTICA_META>Someting...</ARTICA_META>"; add_node_progress("Communication: {failed}", 110); die; } if ($re[1] != "SUCCESS") { add_node_progress("Authenticate: {failed}", 110); die; } echo "Testing authentication - success -...\n"; if ($change_uuid == 1) { echo "Ask to remote server to change UUID...\n"; add_node_progress("{change_uuid}", 20); $curl = new ccurl("https://{$ArticaMetaHost}:{$ArticaMetaPort}/artica.meta.listener.php?local-ident={$ident}&chuuid=yes"); $curl->NoHTTP_POST = true; $curl->NoLocalProxy(); $curl->Timeout = 120; if (!$curl->get()) { echo @implode("\n", $curl->errors); add_node_progress("{$curl->error}", 110); die; } if (!preg_match("#<ARTICA_META>(.+?):(.+?)</ARTICA_META>#is", $curl->data, $re)) { add_node_progress("{change_uuid}: Communication: {failed}", 110); die; } add_node_progress("{change_uuid}:{$re[2]} {success}", 25); echo "Ask to remote server to change UUID - success -...\n"; } echo "Ask UUID to remote server...\n"; add_node_progress("{uuid}:", 30); $curl = new ccurl("https://{$ArticaMetaHost}:{$ArticaMetaPort}/artica.meta.listener.php?local-ident={$ident}&GetYourUUID=yes"); $curl->NoHTTP_POST = true; $curl->NoLocalProxy(); $curl->Timeout = 120; if (!$curl->get()) { echo @implode("\n", $curl->errors); add_node_progress("{$curl->error}", 110); die; } if (!preg_match("#<ARTICA_META>(.+?):(.+?)</ARTICA_META>#is", $curl->data, $re)) { add_node_progress("{uuid}: Communication: {failed}", 110); die; } $RESULT = $re[1]; $uuid = $re[2]; echo "UUID results:\n---------------------------------------------\n{$uuid}\n{$RESULT}\n---------------------------------------------\n"; if ($RESULT == "SUCCESS") { add_node_progress("{uuid}: {$uuid} {success}", 35); } else { add_node_progress("{uuid}: {failed}", 110); return; } echo "Ask to remote server to register to Artica Meta server ...\n"; add_node_progress("{order}: -> {register}", 50); $ArticaMetaServerUsername = $sock->GET_INFO("ArticaMetaServerUsername"); $ArticaMetaServerPassword = $sock->GET_INFO("ArticaMetaServerPassword"); $ArticaMetaAddNewServ["ArticaMetaUsername"] = $ArticaMetaServerUsername; $ArticaMetaAddNewServ["ArticaMetaPassword"] = $ArticaMetaServerPassword; if ($GLOBALS["VERBOSE"]) { $verbosed = "&verbose=yes"; } $ArticaMetaAddNewServ_enc = urlencode(base64_encode(serialize($ArticaMetaAddNewServ))); $curl = new ccurl("https://{$ArticaMetaHost}:{$ArticaMetaPort}/artica.meta.listener.php?local-ident={$ident}®isterby={$ArticaMetaAddNewServ_enc}{$verbosed}"); $curl->NoHTTP_POST = true; $curl->NoLocalProxy(); $curl->Timeout = 120; if (!$curl->get()) { echo @implode("\n", $curl->errors); add_node_progress("{$curl->error}", 110); die; } if ($GLOBALS["VERBOSE"]) { echo "***********************************\n{$curl->data}\n***********************************\n"; } if (!preg_match("#<ARTICA_META>(.+?):(.+?)</ARTICA_META>#is", $curl->data, $re)) { add_node_progress("{register}: Communication: {failed}", 110); die; } $RESULT = $re[1]; $DATA = $re[2]; echo $DATA; echo "Register results:\n---------------------------------------------\n{$DATA}\n{$RESULT}\n---------------------------------------------\n"; if ($RESULT == "SUCCESS") { add_node_progress("{register}: {success}", 99); } else { add_node_progress("{register}: {failed}", 110); return; } $artica_meta = new mysql_meta(); add_node_progress("{waiting}: {$ArticaMetaHost} {to_return_back}", 79); for ($i = 0; $i < 20; $i++) { if ($artica_meta->isExists($uuid)) { break; } echo "Waiting {$ArticaMetaHost} {$uuid} to register to Artica Meta...{$i}/20 second\n"; $prc = 79 + $i; add_node_progress("{waiting}: {$ArticaMetaHost} {to_return_back}", $prc); sleep(1); } if ($artica_meta->isExists($uuid)) { $hostname = $artica_meta->uuid_to_host($uuid); add_node_progress("{register}: {success} `{$hostname}`", 100); return; } add_node_progress("{register}: {failed}", 110); }
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 search() { $MyPage = CurrentPageName(); $page = CurrentPageName(); $tpl = new templates(); $sock = new sockets(); $q = new mysql_meta(); $ArticaMetaPooling = intval($sock->GET_INFO("ArticaMetaPooling")); $ArticaMetaUseSendClient = intval($sock->GET_INFO("ArticaMetaUseSendClient")); if ($ArticaMetaPooling == 0) { $ArticaMetaPooling = 15; } $switch = intval($_GET["switch"]); $table = "metahosts"; $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']; } if ($searchstring != null) { $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"]; } else { $total = $q->COUNT_ROWS($table); } 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 = "18"; if ($switch == 1) { $fontsize = 12; } $style = "<span style='font-size:{$fontsize}px'>"; $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}"); $policies_text = $tpl->javascript_parse_text("{policies}"); $directories_monitor = $tpl->javascript_parse_text("{directories_monitor}"); while ($ligne = mysql_fetch_assoc($results)) { $LOGSWHY = array(); $overloaded = null; $loadcolor = "black"; $StatHourColor = "black"; $uuid = $ligne["uuid"]; $hostname = $ligne["hostname"]; $public_ip = $ligne["public_ip"]; $updated = $ligne["updated"]; $version = $ligne["version"]; $ColorTime = "black"; $CPU_NUMBER = $ligne["CPU_NUMBER"]; $CPU_NUMBER_MAX = $ligne["CPU_NUMBER"] + 1.5; $load = $ligne["load"]; $mem_perc = $ligne["mem_perc"]; $mem_total = FormatBytes($ligne["mem_total"]); $proxyversion = null; $CountdeComputers_text = null; $policies_text_line = null; $CountdeComputers = $q->network_hosts_count($uuid); $icon_warning_32 = "warning32.png"; $icon_red_32 = "32-red.png"; $icon = "ok-32.png"; $BANDWIDTH = $ligne["BANDWIDTH"]; $BANDWIDTH_text = null; $hostag_switch = null; $uuidenc = urlencode($uuid); $PING_URI_SWITCH = null; if ($ArticaMetaUseSendClient == 1) { $PING_URI = " <a href=\"javascript:blur();\" \n\t\t\tOnClick=\"javascript:Loadjs('artica-meta.menus.php?send-ping-js=yes&uuid={$uuidenc}&gpid=0');\"\n\t\t\tstyle='font-size:12px;text-decoration:underline;color:#0021C6'\n\t\t\t>Ping</a>"; } if ($BANDWIDTH > 0) { $BANDWIDTH_text = " (" . FormatBytes($BANDWIDTH / 1024) . ")"; } if ($switch == 1) { $icon_warning_32 = "22-warn.png"; $icon_red_32 = "22-red.png"; $icon = "ok22.png"; } if ($load > $CPU_NUMBER_MAX) { $overloaded = "<br><strong style='color:red'>{$overloaded_text}</strong>"; $icon = $icon_warning_32; $loadcolor = "#CC0000"; $LOGSWHY[] = "{$overloaded_text} {$load}>{$CPU_NUMBER_MAX}"; } $xtime = strtotime($updated); $diff = time_diff_min($xtime); $Difftext = distanceOfTimeInWords($xtime, time(), true); if ($diff > $ArticaMetaPooling) { $icon = $icon_warning_32; $ColorTime = "#CC0000"; $LOGSWHY[] = $Difftext . "/{$ArticaMetaPooling}Mn"; } if ($diff > $ArticaMetaPooling * 4) { $icon = $icon_red_32; $ColorTime = "#CC0000"; $LOGSWHY[] = $Difftext . "/{$ArticaMetaPooling}Mn"; } $disks = unserialize($ligne["disks"]); $SIZE = 0; $USED = 0; $infodisk = null; $DISKS_TEXT = array(); if ($q->philesight_count($uuid) > 0) { $DISKS_TEXT[] = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('artica-meta.hosts.philesight.php?uuid={$uuid}')\"\n\t\t\tstyle='font-size:14px;font-weight:bold;text-decoration:underline'>{$directories_monitor}</a><hr style='margin-bottom:15px;border:0px;'>"; } if (is_array($disks)) { $DISKS_TEXT[] = "<ul>"; while (list($disks, $mainarray) = each($disks)) { $SIZE = FormatBytes(intval($mainarray["SIZE"]) / 1024); $DISKS_TEXT[] = "<li style='font-weight:bold;font-size:14px'>{$disks} {$SIZE}</li>"; $DISKS_TEXT[] = "<ul>"; while (list($part, $partArray) = each($mainarray["PARTS"])) { $color_disk = "black"; $POURC = $partArray["POURC"]; if ($POURC > 95) { $color_disk = "red"; $icon = $icon_red_32; $LOGSWHY[] = "{$part} {used}:{$POURC}%"; } $TOT = FormatBytes($partArray["TOT"] / 1024); $AIV = FormatBytes($partArray["AIV"] / 1024); $DISKS_TEXT[] = "<li style='color:{$color_disk}'>{$part} {$TOT} - {used}:{$POURC}% {free}: {$AIV}</li>"; } $DISKS_TEXT[] = "</ul>"; } $DISKS_TEXT[] = "</ul>"; $infodisk = $tpl->_ENGINE_parse_body(@implode("", $DISKS_TEXT)); } if ($switch == 1) { $infodisk = null; } $info = $tpl->_ENGINE_parse_body("<br>{last_status}: <span style='color:{$ColorTime}'>{$Difftext}</span><br><span style='font-size:12px'>{$CPU_NUMBER} CPU(s), {memory}:{$mem_total}{$overloaded}</span>"); $cell = array(); $linkver = "<a href=\"javascript:Loadjs('artica-meta.update.artica.php?uuid={$uuid}');\" \n\t\tstyle='text-decoration:underline'>"; if ($q->isOrder($uuid, "UPDATE_ARTICA")) { $version = "<center style='margin:10px'><img src='img/preloader.gif'></center>"; } if ($ligne["PROXY"] == 1) { $proxyuri = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('artica-meta.squid.watchdog-events.php?js=yes&uuid={$uuid}');\"\n\t\tstyle='text-decoration:underline'>"; $proxyversion = "<br><span style='font-size:12px'>{$proxyuri}Proxy: {$ligne["squidver"]}</a> {$BANDWIDTH_text}</span>"; } if ($CountdeComputers > 0) { $CountdeComputers = FormatNumber($CountdeComputers); $CountdeComputers_uri = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('artica-meta.networks.hosts.php?js=yes&uuid={$uuid}');\"\n\t\t\tstyle='text-decoration:underline'>"; $CountdeComputers_text = "<br><span style='font-size:12px'>{$CountdeComputers_uri}{$computers}: <strong>{$CountdeComputers}</strong></a></span>"; } $OrdersText = null; $ligneOrders = mysql_fetch_array($q->QUERY_SQL("SELECT COUNT(orderid) as tcount FROM `metaorders` WHERE `uuid`='{$uuid}'")); $OrdersCount = $ligneOrders["tcount"]; if ($OrdersCount > 0) { $OrdersText = "<br><a href=\"javascript:blur();\" \n\t\t\tOnClick=\"javascript:Loadjs('artica-meta.hosts.orders.php?uuid={$uuid}');\">\n\t\t\t<strong style='text-decoration:underline;color:#E48407'>{$orders_text}:{$OrdersCount}</strong>"; } $ligneOrders = mysql_fetch_array($q->QUERY_SQL("SELECT COUNT(uuid) as tcount FROM `policies_storage` WHERE `uuid`='{$uuid}'")); $OrdersCount = $ligneOrders["tcount"]; if ($OrdersCount > 0) { $policies_text_line = "<br><strong style='text-decoration:underline;color:#E48407'>{$policies_text}:{$OrdersCount}</strong>"; } $events = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('artica-meta.events.php?js=yes&uuid={$uuid}');\"\n\t\tstyle='float:right'><img src='css/images-flexigrid/magnifier.png'></a>"; $cpus = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('artica-meta.cpustats.php?js=yes&uuid={$uuid}');\"\n\t\tstyle='text-decoration:underline'>"; $hostsCommands = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('artica-meta.menus.php?js=yes&uuid={$uuid}');\"\n\t\tstyle='text-decoration:underline'>"; $hostag = utf8_encode($ligne["hostag"]); if ($hostag != null) { $hostag = "<br><i style='font-size:12px'>{$hostag}</i>"; } if ($switch == 1) { $info = null; $hostag = null; $proxyversion = null; $CountdeComputers_text = null; $events = null; $hostag_switch = utf8_encode($ligne["hostag"]); $PING_URI_SWITCH = $PING_URI; $PING_URI = null; if (count($LOGSWHY) > 0) { $infodisk = $tpl->_ENGINE_parse_body("<span style='color:red;font-size:12px'>" . @implode(", ", $LOGSWHY) . "</span>"); } } $cell = array(); $link_ip = "<a href=\"https://{$public_ip}:9000\" style='text-decoration:underline' target=_new>"; $cell[] = "<img src=\"img/{$icon}\">"; $cell[] = "{$style}{$hostsCommands}{$hostname}{$hostag}</a>{$PING_URI_SWITCH}{$events} </span>{$info}{$proxyversion}{$CountdeComputers_text}{$OrdersText}{$policies_text_line}"; $cell[] = "{$style}<span style='color:{$loadcolor}'>{$load}</span></span>"; $cell[] = "{$style}{$cpus}{$mem_perc}%</a></span>"; $cell[] = $hostag_switch . " " . $infodisk; $cell[] = "{$style}{$link_ip}{$public_ip}</a>{$PING_URI}</span>"; $cell[] = "{$style}{$linkver}{$version}</a></span>"; $data['rows'][] = array('id' => $ligne['uuid'], 'cell' => $cell); } echo json_encode($data); }
function delete_category() { $category = trim($_POST["remove_category"]); if (strlen($category) == 0) { return; } $q = new mysql_meta(); $q->QUERY_SQL("DELETE FROM webfiltering_categories WHERE `category`='{$category}'"); if (!$q->ok) { echo $q->mysql_error; return; } $q->QUERY_SQL("DELETE FROM webfiltering_categories_items WHERE `category`='{$category}'"); if (!$q->ok) { echo $q->mysql_error; return; } $q->QUERY_SQL("DELETE FROM webfiltering_categories_urls WHERE `category`='{$category}'"); $sock = new sockets(); $sock->getFrameWork("artica.php?scan-categories=yes"); }
function search() { $tpl = new templates(); $MyPage = CurrentPageName(); $q = new mysql_meta(); $search = '%'; $table = "(SELECT * FROM system_schedules WHERE `uuid`='{$_GET["uuid"]}') as t"; $page = 1; $ORDER = "ORDER BY ID DESC"; $sock = new sockets(); $DisableSquidDefaultSchedule = $sock->GET_INFO("DisableSquidDefaultSchedule"); if (!is_numeric($DisableSquidDefaultSchedule)) { $DisableSquidDefaultSchedule = 0; } $schedules = new system_tasks(); $ForceTaskType = $_GET["ForceTaskType"]; if (!is_numeric($ForceTaskType)) { $ForceTaskType = 0; } $total = 0; $FORCE = 1; if ($ForceTaskType > 0) { $FORCE = "TaskType={$ForceTaskType}"; } 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(); $sql = "SELECT COUNT(*) as TCOUNT FROM {$table} WHERE {$FORCE} {$searchstring}"; $ligne = mysql_fetch_array($q->QUERY_SQL($sql)); $total = $ligne["TCOUNT"]; if (isset($_POST['rp'])) { $rp = $_POST['rp']; } $pageStart = ($page - 1) * $rp; if (is_numeric($rp)) { $limitSql = "LIMIT {$pageStart}, {$rp}"; } $sql = "SELECT * FROM {$table} WHERE {$FORCE} {$searchstring} {$ORDER} {$limitSql}"; writelogs($sql, __FUNCTION__, __FILE__, __LINE__); $results = $q->QUERY_SQL($sql); $data = array(); $data['page'] = $page; $data['total'] = $total; $data['rows'] = array(); if (!$q->ok) { json_error_show("no schedule"); } $q2 = new mysql(); if (mysql_num_rows($results) == 0) { json_error_show("no schedule", 1); } while ($ligne = mysql_fetch_assoc($results)) { $color = "black"; $events = " "; $md5 = md5("SquidTask{$ligne['ID']}"); $TaskType = $ligne["TaskType"]; $jstaskexplain = $tpl->javascript_parse_text($schedules->tasks_array[$ligne["TaskType"]]); $ligne["TaskType"] = $tpl->_ENGINE_parse_body($schedules->tasks_array[$ligne["TaskType"]]); $TimeDescription = $ligne["TimeDescription"]; $enable = Field_checkbox($md5, 1, $ligne["enabled"], "SystemTaskEnable('{$md5}',{$ligne['ID']})"); $delete = imgtootltip("delete-24.png", "{delete} {$ligne['ID']}", "SquidTaskDelete('{$ligne['ID']}')"); $run = $tpl->_ENGINE_parse_body(imgtootltip("24-run.png", "{run} {$ligne['ID']}", "SystemTaskRun('{$ligne['ID']}','{$jstaskexplain}')")); if ($ligne["enabled"] == 0) { $color = "#A0A0A0"; } $tablename = "Taskev{$ligne['ID']}"; if (!$q->TABLE_EXISTS($tablename, "artica_events")) { $events = imgsimple("delete_disabled.png"); } else { $evs = $q2->COUNT_ROWS($tablename, "artica_events"); if ($evs > 0) { $events = imgsimple("events-24.png", "{events} {$ligne['ID']}", "Loadjs('squid.update.events.php?taskid={$ligne['ID']}&table={$tablename}')"); } } $explainTXT = $tpl->_ENGINE_parse_body($schedules->tasks_explain_array[$TaskType]); $TimeText = $tpl->_ENGINE_parse_body($schedules->PatternToHuman($ligne["TimeText"])); $TimeText = str_replace("<br>", "", $TimeText); if (preg_match("#(.+?)\\s+(.+?)\\s+(.+?)\\s+(.+?)\\s+(.+?)#", $TimeDescription, $re)) { $TimeDescription = $TimeText; $TimeText = null; } $span = "<a href=\"javascript:blur();\" OnClick=\"javascript:Loadjs('{$MyPage}?AddNewSchedule-js=yes&ID={$ligne['ID']}');\"\n\t\t style='font-size:16px;font-weight:bold;color:{$color};text-decoration:underline'>"; $ligne["TimeDescription"] = utf8_encode($ligne["TimeDescription"]); $ligne["TaskType"] = utf8_encode($ligne["TaskType"]); //rowSquidTask $data['rows'][] = array('id' => "SquidTask" . $ligne['ID'], 'cell' => array("{$span}{$ligne['ID']}</a>", "{$span}{$ligne["TaskType"]}</a>", "{$span}{$TimeDescription}</a>\n\t\t<div style='font-size:11px'><i>{$explainTXT}</i></div>", "<div style='margin-top:5px'>{$enable}</div>", $delete)); } echo json_encode($data); }
function search() { $MyPage = CurrentPageName(); $page = CurrentPageName(); $tpl = new templates(); $sock = new sockets(); $q = new mysql_meta(); $table = "snapshots"; $database = null; $uuid = $_GET["uuid"]; $uuidenc = urlencode($uuid); $gpid = intval($_GET["gpid"]); if (!$q->TABLE_EXISTS($table, $database)) { json_error_show("no data - no table"); } $searchstring = string_to_flexquery(); $page = 1; $table = "(SELECT \n\t\tsnapshots.zmd5,snapshots.zDate,\n\t\tsnapshots.size,\n\t\tmetahosts.hostname,\n\t\tmetahosts.hostag\n\t\tFROM snapshots,metahosts WHERE metahosts.uuid=snapshots.uuid) as t"; 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, $database)); 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, $database); 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", 0); } $data = array(); $data['page'] = $page; $data['total'] = $total; $data['rows'] = array(); $fontsize = "14"; $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"; $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"; $xdate = $ligne["zDate"]; $xtime = strtotime($xdate); $date = $tpl->time_to_date($xtime, true); $size = FormatBytes($ligne["size"] / 1024); $urijs = "Loadjs('{$MyPage}?content-js=yes&ID={$ligne["ID"]}');"; $link = "<a href=\"javascript:blur();\" OnClick=\"javascript:{$urijs}\" {$styleHref}>"; $delete = imgtootltip("delete-32.png", null, "Loadjs('{$MyPage}?unlink-js={$ligne["zmd5"]}')"); $restore = imgtootltip("32-import.png", null, "Loadjs('artica-meta.menus.php?snapshot-restore-js=yes&zmd5={$ligne["zmd5"]}&uuid={$uuidenc}&gpid={$gpid}')"); if ($uuid == null) { if ($gpid == 0) { $restore = " - "; } } $cell = array(); $cell[] = "<span {$style}>{$xdate}<br><i style='font-size:12px'>{$date}</i></a></span>"; $cell[] = "<span {$style}>{$hostname}<br><i style='font-size:12px'>{$hostag}</i></a></span>"; $cell[] = "<span {$style}>{$size}</a></span>"; $cell[] = $restore; $cell[] = "{$delete}"; $data['rows'][] = array('id' => $ligne['uuid'], 'cell' => $cell); } echo json_encode($data); }