From: peterbulmer Date: Thu, 30 Oct 2008 01:17:55 +0000 (+0000) Subject: MDL-17038 - truncate overlength varchar fields before attempting to insert X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=9dbc81ef23bc805ec2d9eac179b897c17c1ce4f6;p=moodle.git MDL-17038 - truncate overlength varchar fields before attempting to insert Author: Peter Bulmer --- diff --git a/auth/mnet/auth.php b/auth/mnet/auth.php index 3c5993e48a..e9656060a3 100644 --- a/auth/mnet/auth.php +++ b/auth/mnet/auth.php @@ -886,7 +886,8 @@ class auth_plugin_mnet extends auth_plugin_base { unset($logEntryObj->username); - $insertok = $DB->insert_record('mnet_log', $logEntryObj, false); + $logEntryObj = $this->trim_logline($logEntryObj); + $insertok = $DB->insert_record('mnet_log', $logEntryObj, false); if ($insertok) { $MNET_REMOTE_CLIENT->last_log_id = $logEntryObj->remoteid; @@ -1341,6 +1342,25 @@ class auth_plugin_mnet extends auth_plugin_base { } } + /** + * Trims a log line from mnet peer to limit each part to a length which can be stored in our DB + * + * @param object $logline The log information to be trimmed + * @return object The passed logline object trimmed to not exceed storable limits + */ + function trim_logline ($logline) { + $limits = array('ip' => 15, 'coursename' => 40, 'module' => 20, 'action' => 40, + 'url' => 255); + foreach ($limits as $property => $limit) { + if (isset($logline->$property)) { + $logline->$property = substr($logline->$property, 0, $limit); + } + } + + return $logline; + } + + } ?>