Das Löschen von $form-Variablen im Watchdog ebenfalls abfangen und überwachen.
authorMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 21 May 2007 13:11:43 +0000 (13:11 +0000)
committerMoritz Bunkus <m.bunkus@linet-services.de>
Mon, 21 May 2007 13:11:43 +0000 (13:11 +0000)
SL/Watchdog.pm

index 69ec53c..9001b1b 100644 (file)
@@ -44,4 +44,27 @@ sub STORE {
   $this->{$key} = $value;
 }
 
+sub DELETE {
+  my ($this, $key) = @_;
+
+  if ($watched_variables{$key} && ($this->{$key} ne "")) {
+    my $subroutine = (caller 1)[3];
+    my ($self_filename, $self_line) = (caller)[1, 2];
+    $main::lxdebug->_write("WATCH",
+                           "Value of '$key' changed from '$this->{$key}' to '' "
+                             . "in ${subroutine} at ${self_filename}:${self_line}");
+    if ($watched_variables{$key} > 1) {
+      my $level = 1;
+      my ($dummy, $filename, $line);
+
+      while (($dummy, $filename, $line, $subroutine) = caller $level) {
+        $main::lxdebug->_write("WATCH", "  ${subroutine} from ${filename}:${line}");
+        $level++;
+      }
+    }
+  }
+
+  delete $this->{$key};
+}
+
 1;