From 20fe502ca4b9ca8471d75bfe723781bef958f28a Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Wed, 27 Feb 2019 12:02:40 -0500 Subject: [PATCH 1/3] Add ZM to ErrorHandler. Spacing and quotes --- web/includes/logger.php | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/web/includes/logger.php b/web/includes/logger.php index 1e37f708e..3aa8f891b 100644 --- a/web/includes/logger.php +++ b/web/includes/logger.php @@ -16,9 +16,9 @@ class Logger { private $initialised = false; - private $id = "web"; - private $idRoot = "web"; - private $idArgs = ""; + private $id = 'web'; + private $idRoot = 'web'; + private $idArgs = ''; private $useErrorLog = true; private $level = self::INFO; @@ -32,17 +32,17 @@ class Logger { private $hasTerm = false; private $logPath = ZM_PATH_LOGS; - private $logFile = ""; + private $logFile = ''; private $logFd = NULL; public static $codes = array( - self::DEBUG => "DBG", - self::INFO => "INF", - self::WARNING => "WAR", - self::ERROR => "ERR", - self::FATAL => "FAT", - self::PANIC => "PNC", - self::NOLOG => "OFF", + self::DEBUG => 'DBG', + self::INFO => 'INF', + self::WARNING => 'WAR', + self::ERROR => 'ERR', + self::FATAL => 'FAT', + self::PANIC => 'PNC', + self::NOLOG => 'OFF', ); private static $syslogPriorities = array( self::DEBUG => LOG_DEBUG, @@ -63,7 +63,7 @@ class Logger { private function __construct() { $this->hasTerm = (php_sapi_name() == 'cli' && empty($_SERVER['REMOTE_ADDR'])); - $this->logFile = $this->logPath."/".$this->id.".log"; + $this->logFile = $this->logPath.'/'.$this->id.'.log'; } public function __destruct() { @@ -78,12 +78,12 @@ class Logger { //$this->useErrorLog = $options['useErrorLog']; if ( isset($options['logPath']) ) { $this->logPath = $options['logPath']; - $tempLogFile = $this->logPath."/".$this->id.".log"; + $tempLogFile = $this->logPath.'/'.$this->id.'.log'; } if ( isset($options['logFile']) ) $tempLogFile = $options['logFile']; else - $tempLogFile = $this->logPath."/".$this->id.".log"; + $tempLogFile = $this->logPath.'/'.$this->id.'.log'; if ( !is_null($logFile = $this->getTargettedEnv('LOG_FILE')) ) $tempLogFile = $logFile; @@ -177,10 +177,10 @@ class Logger { } private function getTargettedEnv( $name ) { - $envName = $name."_".$this->id; + $envName = $name.'_'.$this->id; $value = getenv( $envName ); if ( $value === false && $this->id != $this->idRoot ) - $value = getenv( $name."_".$this->idRoot ); + $value = getenv( $name.'_'.$this->idRoot ); if ( $value === false ) $value = getenv( $name ); return( $value !== false ? $value : NULL ); @@ -269,7 +269,7 @@ class Logger { if ( $this->databaseLevel > self::NOLOG ) { if ( (include_once 'database.php') === FALSE ) { $this->databaseLevel = self::NOLOG; - Warning( "Unable to write log entries to DB, database.php not found" ); + Warning( 'Unable to write log entries to DB, database.php not found' ); } } } @@ -424,7 +424,7 @@ class Logger { function logInit( $options=array() ) { $logger = Logger::fetch(); $logger->initialise( $options ); - set_error_handler( 'ErrorHandler' ); + set_error_handler( 'ZM\ErrorHandler' ); } function logToDatabase( $level=NULL ) { @@ -487,7 +487,7 @@ function Panic( $string ) { function ErrorHandler( $error, $string, $file, $line ) { if ( ! (error_reporting() & $error) ) { // This error code is not included in error_reporting - return( false ); + return false; } switch ( $error ) { @@ -507,7 +507,7 @@ function ErrorHandler( $error, $string, $file, $line ) { Panic( "Unknown error type: [$error] $string" ); break; } - return( true ); + return true; } ?> From 2d75ab50af3521df1f0ed3fff5890bbea5021477 Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Thu, 28 Feb 2019 16:12:34 -0500 Subject: [PATCH 2/3] Implement deleting from Logs based on line count instead of interval --- web/skins/classic/includes/functions.php | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/web/skins/classic/includes/functions.php b/web/skins/classic/includes/functions.php index 201bebe21..37209b7d0 100644 --- a/web/skins/classic/includes/functions.php +++ b/web/skins/classic/includes/functions.php @@ -267,8 +267,19 @@ function getNavBarHTML($reload = null) { ZM\Logger::NOLOG ) { if ( ! ZM_RUN_AUDIT ) { - # zmaudit can clean the logs, but if we aren't running it, then we should clecan them regularly - dbQuery('DELETE FROM Logs WHERE TimeKey < unix_timestamp( NOW() - interval '.ZM_LOG_DATABASE_LIMIT.') LIMIT 100'); + # zmaudit can clean the logs, but if we aren't running it, then we should clean them regularly + if ( preg_match('/^\d+$/', ZM_LOG_DATABASE_LIMIT) ) { + # Number of lines, instead of an interval + $rows = dbFetchOne('SELECT Count(*) AS Rows FROM Logs', 'Rows' ); + if ( $rows > ZM_LOG_DATABASE_LIMIT ) { + dbQuery('DELETE low_priority FROM Logs ORDER BY TimeKey ASC LIMIT ?', array($rows - ZM_LOG_DATABASE_LIMIT)); + } + } else if ( preg_match('/^\d\s*(hour|minute|day|week|month|year)$/', ZM_LOG_DATABASE_LIMIT, $matches) ) { + ZM\Logger::Debug("have interval ".$matches[1]); + dbQuery('DELETE FROM Logs WHERE TimeKey < unix_timestamp( NOW() - interval '.ZM_LOG_DATABASE_LIMIT.') LIMIT 100'); + } else { + ZM\Error('Potentially invalid value for ZM_LOG_DATABASE_LIMIT: ' . ZM_LOG_DATABASE_LIMIT); + } } echo makePopupLink( '?view=log', 'zmLog', 'log', ''.translate('Log').'' ); } From 675b4975b0fd9fadf1e83ae3e32340efb0aa1efc Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Fri, 1 Mar 2019 13:37:34 -0500 Subject: [PATCH 3/3] Fix control presets --- web/includes/actions/control.php | 5 +++-- web/skins/classic/includes/control_functions.php | 6 +++--- web/skins/classic/views/controlpreset.php | 8 ++++---- web/skins/classic/views/js/watch.js | 1 - 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/web/includes/actions/control.php b/web/includes/actions/control.php index 36f6b14fb..5dff5a5d2 100644 --- a/web/includes/actions/control.php +++ b/web/includes/actions/control.php @@ -28,13 +28,14 @@ if ( ! canView('Control', $_REQUEST['mid']) ) { return; } -require_once('control_functions.php'); -require_once('Monitor.php'); +require_once('includes/control_functions.php'); +require_once('includes/Monitor.php'); $mid = validInt($_REQUEST['mid']); if ( $action == 'control' ) { $monitor = new ZM\Monitor($mid); $ctrlCommand = buildControlCommand($monitor); sendControlCommand($monitor->Id(), $ctrlCommand); + $view = 'none'; } ?> diff --git a/web/skins/classic/includes/control_functions.php b/web/skins/classic/includes/control_functions.php index 41d4053c5..b2a42a1d4 100644 --- a/web/skins/classic/includes/control_functions.php +++ b/web/skins/classic/includes/control_functions.php @@ -252,7 +252,7 @@ function controlPresets( $monitor, $cmds ) { global $SLANG; // MAX_PRESETS IS PER LINE - define( "MAX_PRESETS", "12" ); + define( 'MAX_PRESETS', '12' ); $sql = 'SELECT * FROM ControlPresets WHERE MonitorId = ?'; $labels = array(); @@ -282,12 +282,12 @@ function controlPresets( $monitor, $cmds ) { HasHomePreset() ) { ?> - CanSetPresets() ) { ?> - diff --git a/web/skins/classic/views/controlpreset.php b/web/skins/classic/views/controlpreset.php index 1862d071c..9b5af9618 100644 --- a/web/skins/classic/views/controlpreset.php +++ b/web/skins/classic/views/controlpreset.php @@ -49,7 +49,7 @@ xhtmlHeaders(__FILE__, translate('SetPreset') );
- + @@ -57,11 +57,11 @@ xhtmlHeaders(__FILE__, translate('SetPreset') );

- +

- - + +
diff --git a/web/skins/classic/views/js/watch.js b/web/skins/classic/views/js/watch.js index 554b24b00..a0594825b 100644 --- a/web/skins/classic/views/js/watch.js +++ b/web/skins/classic/views/js/watch.js @@ -142,7 +142,6 @@ function getStreamCmdFailure(xhr) { } function getStreamCmdResponse(respObj, respText) { watchdogOk("stream"); - console.log('stream'); if ( streamCmdTimer ) { streamCmdTimer = clearTimeout(streamCmdTimer); }