try this:
--- Yours.pm Thu Sep 14 08:04:00 2000
+++ Mine.pm Thu Sep 14 08:02:49 2000
@@ -57,8 +57,8 @@
{
my $r = shift;
- my $notes = $r->notes;
- my $pnotes = $r->pnotes;
+ my $notes = $r->prev->notes || $r->notes;
+ my $pnotes = $r->prev->pnotes || $r->pnotes;
$r->status( SERVER_ERROR );
$r->send_http_header;
HTH
--Geoff
> -----Original Message-----
> From: brian d foy [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, September 13, 2000 6:19 PM
> To: [EMAIL PROTECTED]
> Subject: does notes() work with custom_response()?
>
>
>
> =head
> should notes() be available to a handler installed with
> custom_response()?
>
> notice the code below:
>
> 0) handler() decides which function will handle the response
> and sets a note.
>
> 1) in test(), if part of the uri contains /error/, then
> another note is set and a custom_response() is used.
> the error() routine handles the error(). it sees the
> note set by handler() but not by test(),
>
> 2) in test(), if part of the uri contains /push/, then
> a note is set and error() is installed as a handler.
> error() then sees both notes.
>
> should 1) propogate both notes? are things even designed to
> work that way?
> =cut
>
> package LinkBank5::ErrorTest;
>
> use Apache::Constants;
>
> sub handler
> {
> my $r = shift;
> my $uri = $r->uri;
> $r->notes( 'LB-handler' => "Run at @{[scalar localtime]}" );
>
> if( $uri =~ /test/ )
> {
> $r->push_handlers( PerlHandler => \&test );
> return OK;
> }
> if( $uri =~ /error/ )
> {
> $r->push_handlers( PerlHandler => \&error );
> return OK;
> }
> else { return DECLINED; }
> }
>
> sub test
> {
> my $r = shift;
> my $uri = $r->uri;
>
> #this note is not set, although the handler note is propogated
> if( $uri =~ /error/ ) # e.g. /test/error
> {
> $r->notes('LB-Error' => 'Oops! i messed up');
> $r->notes('error-notes' => 'Oops! i messed up');
> $r->custom_response( SERVER_ERROR, "/error" );
>
> return SERVER_ERROR; #tested with OK and DECLINED too
> }
> #using a PushHandler works
> elsif( $uri =~ /push/ ) # e.g. /test/push
> {
> $r->notes('LB-Push' => 'Oops! i messed up');
> $r->push_handlers( PerlHandler => \&error );
>
> return OK;
> }
>
> $r->send_http_header;
>
> my $note = $r->notes('LB-handler');
> $r->print("I'm in test!\n");
> $r->print("The note is [$note]\n");
>
> return OK;
> }
>
> sub error
> {
> my $r = shift;
>
> my $notes = $r->notes;
> my $pnotes = $r->pnotes;
>
> $r->status( SERVER_ERROR );
> $r->send_http_header;
>
> $r->print("I'm in error!\n");
>
> print "Notes are -----\n";
> print map { "$_ => $$notes{$_}\n" } sort keys %$notes;
>
> print "PNotes are -----\n";
> print map { "$_ => $$pnotes{$_}\n" } sort keys %$pnotes;
>
> return OK;
> }
>
> 1;
>
> __END__
>
> --
> brian d foy <[EMAIL PROTECTED]>
> Director of Technology, Smith Renaud, Inc.
> 875 Avenue of the Americas, 2510, New York, NY 10001
> V: (212) 239-8985
>