Thanks for the reply Thomas,
> Why not let determine_proper_action() return undef (or OK, or whatever) if
> you do not want to redirect? And in your handler do:
>
> my $rv=determine_proper_action();
> if ($rv) { # or ($rv == Apache::Constants::OK)
> # redirect
> } else
> # done
> }
>
> One problem I can see is if you're exiting somewhere deep in a nested sub
> and you cannot propagate the return value back to the handler (easily).
>
>
That seems to be working well, I've changed that part of the handler to:
******************
($request_type,$back_url) = determine_proper_action();
# Properly Exit the Handler from all subs within Determine Proper Action
if ($request_type eq 'Apache::REDIRECT') {
$r->headers_out->set(Location => $back_url);
return Apache::REDIRECT;
} else {
return Apache::OK;
}
*****************
Then in every sub within determine_proper_action I'm returning either
"Apache::OK" or "Apache::REDIRECT".
Still got a lot of testing to do, but so far I've been able to get rid of
all "exit"s from my script!
Thanks
-Chris
--
Reporting bugs: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
|