From f7a37660cd8da89c9f81f7761d0b13a0e744d10d Mon Sep 17 00:00:00 2001 From: tbrehm Date: Fri, 8 Apr 2011 11:45:08 +0000 Subject: [PATCH] Added remote monitor connector. --- interface/web/remote/monitor.php | 64 ++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 interface/web/remote/monitor.php diff --git a/interface/web/remote/monitor.php b/interface/web/remote/monitor.php new file mode 100644 index 000000000..9df8a1fd9 --- /dev/null +++ b/interface/web/remote/monitor.php @@ -0,0 +1,64 @@ +error('This function is disabled in demo mode.'); + +header('Content-Type: application/json; charset=utf-8'); +header('Access-Control-Allow-Origin: *'); +header('Access-Control-Allow-Headers: X-Requested-With'); +header('Cache-Control: no-cache, must-revalidate'); // HTTP/1.1 +header('Expires: Sat, 26 Jul 1997 05:00:00 GMT'); // Date in the past + +$type = addslashes($_GET['type']); +$token = addslashes($_GET['token']); +$server_id = intval($_GET['server']); + +$app->uses('getconf'); +$interface_config = $app->getconf->get_global_config('misc'); +$secret = $interface_config['monitor_key']; + +$out = array(); + +if($token == '' or $secret == '' or $token != $secret) { + $out['state'] = 'syserror'; + $out['data'] = 'Password empty or incorrect.'; + $out['time'] = date('Y-m-d H:i'); +} else { + if($type == 'serverlist') { + $sql = 'SELECT server_id, server_name FROM server WHERE 1 ORDER BY server_id'; + $records = $app->db->queryAllRecords($sql); + $out['state'] = 'ok'; + $out['data'] = $records; + $out['time'] = date('Y-m-d H:i',$rec['created']); + } else { + $rec = $app->db->queryOneRecord("SELECT * FROM monitor_data WHERE type = '$type' AND server_id = $server_id"); + if(is_array($rec)) { + $out['state'] = $rec['state']; + $out['data'] = unserialize(stripslashes($rec['data'])); + if(is_array($out['data']) && sizeof($out['data']) > 0){ + foreach($out['data'] as $key => $val){ + if(!$val) $out['data'][$key] = " "; + } + } + $out['time'] = date('Y-m-d H:i',$rec['created']); + } else { + $out['state'] = 'syserror'; + $out['data'] = 'No monitor record found.'; + $out['time'] = date('Y-m-d H:i'); + } + $sql = 'SELECT server_id, server_name FROM server WHERE 1 ORDER BY server_id'; + $records = $app->db->queryAllRecords($sql); + $out['serverlist'] = $records; + } +} +$out['type'] = $type; +$out['hostname'] = $_SERVER['SERVER_NAME']; +$out['token'] = $token; +$out['port'] = $_SERVER['SERVER_PORT']; +$out['serverid'] = $server_id; + +echo json_encode($out); +exit; +?> \ No newline at end of file -- GitLab