]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-17038 - truncate overlength varchar fields before attempting to insert
authorpeterbulmer <peterbulmer>
Thu, 30 Oct 2008 01:17:55 +0000 (01:17 +0000)
committerpeterbulmer <peterbulmer>
Thu, 30 Oct 2008 01:17:55 +0000 (01:17 +0000)
Author: Peter Bulmer <peter.bulmer@catalyst.net.nz>

auth/mnet/auth.php

index 3c5993e48afe5a0ce627b153f07ff4ba0831ae2e..e9656060a3f28050be464f3d244ca49f677060a6 100644 (file)
@@ -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;
+    }
+
+
 }
 
 ?>