I have a TransHandler that's setting a note with $r->notes("something",
"something") the first time it runs.

When I give it a directory ($r->uri is something like "/whatever/"),
then Apache runs my TransHandler several times, where $r->uri looks like
"/whatever/", then "/whatever/index.html".

Now, the second time the TransHandler runs in the same request (with the
/index.html that mod_dir added), it doesn't see the note that the first
time left!  I've double-checked the code, and made it dump the notes
table to stderr, to no avail.  The note just goes away.

Question: is it supposed to do that?  Is there a suggested workaround?


Here's a simple test case of a TransHandler that shows this behavior:

sub handler {
  my $r = shift;
  my $uri = $r->uri;
  my $notes = $r->notes;

  print STDERR "Notes init ($uri)!\n";
  foreach my $k (keys %$notes) {
    my $v = $notes->{$k};
    print STDERR "NOTE ($k) -> ($v)\n";
  }
  print STDERR "---------\n";

  $r->notes("hello", "world") unless $uri =~ /html/;

  print STDERR "Notes exit!\n";
  foreach my $k (keys %$notes) {
    my $v = $notes->{$k};
    print STDERR "NOTE ($k) -> ($v)\n";
  }
  print STDERR "---------\n";

  return DECLINED;
}

And the error_log of requesting / on this server:

[Wed May 31 19:42:35 2000] [notice] Apache/1.3.12 (Unix) mod_perl/1.21 configure
d -- resuming normal operations
Notes init (/)!
---------
Notes exit!
NOTE (hello) -> (world)
---------
Notes init (/)!
---------
Notes exit!
NOTE (hello) -> (world)
---------
Notes init (/index.html)!
---------
Notes exit!
---------
Notes init (/index.html)!
---------
Notes exit!
---------

-- 
Roger Espel Llima, [EMAIL PROTECTED]
http://www.iagora.com/~espel/index.html

Reply via email to