--- DBI.pm Sun Apr 10 03:08:50 2005This only gets it to appear in the Apache::Status menu. I believe I'll have a patch to use Apache2::ServerRecUtil in the rest shortly.
+++ DBI.pm.new Sun Apr 10 03:10:56 2005
@@ -31,11 +31,19 @@
sub connect_on_init {
# provide a handler which creates all connections during server startup
- # TODO - Should check for mod_perl 2 and do the right thing there - carp "Apache.pm was not loaded\n" and return unless $INC{'Apache.pm'}; - if([EMAIL PROTECTED] and Apache->can('push_handlers')) { - Apache->push_handlers(PerlChildInitHandler => \&childinit); - } + if ($ENV{MOD_PERL_API_VERSION} == 2) { + if ([EMAIL PROTECTED]) { + require Apache2::ServerUtil; + my $s = Apache2::ServerUtil->server; + $s->push_handlers(PerlChildInitHandler => \&childinit); + } + } + else { + carp "Apache.pm was not loaded\n" and return unless $INC{'Apache.pm'}; + if ([EMAIL PROTECTED] and Apache->can('push_handlers')) { + Apache->push_handlers(PerlChildInitHandler => \&childinit); + } + } # store connections push @ChildConnect, [EMAIL PROTECTED]; } @@ -93,10 +101,16 @@
# this PerlCleanupHandler is supposed to initiate a rollback after the script has finished if AutoCommit is off.
my $needCleanup = ($Idx =~ /AutoCommit[^\d]+0/) ? 1 : 0;
- # TODO - Fix mod_perl 2.0 here
if(!$Rollback{$Idx} and $needCleanup and Apache->can('push_handlers')) {
print STDERR "$prefix push PerlCleanupHandler \n" if $Apache::DBI::DEBUG > 1;
- Apache->push_handlers("PerlCleanupHandler", \&cleanup);
+ if ($ENV{MOD_PERL_API_VERSION} == 2) {
+ require Apache2::ServerUtil;
+ my $s = Apache2::ServerUtil->server;
+ $s->push_handlers("PerlCleanupHandler", \&cleanup);
+ }
+ else {
+ Apache->push_handlers("PerlCleanupHandler", \&cleanup);
+ }
# make sure, that the rollback is called only once for every
# request, even if the script calls connect more than once
$Rollback{$Idx} = 1;
@@ -191,25 +205,8 @@
};
}
-- END ------------------------------------------------------ Philip M. Gollucci ([EMAIL PROTECTED]) 301.254.5198 Consultant / http://p6m7g8.net/Resume/resume.shtml Senior Developer / Liquidity Services, Inc. http://www.liquidityservicesinc.com