perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Philip M. Gollucci" <pgollu...@p6m7g8.com>
Subject Re: [PATCH[ Apache::DBI part 2
Date Sun, 10 Apr 2005 07:17:44 GMT
Philip M. Gollucci wrote:
> This 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	Sun Apr 10 03:08:50 2005
+++ 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(!@ChildConnect and Apache->can('push_handlers')) {
-        Apache->push_handlers(PerlChildInitHandler => \&childinit);
-    }
+		if ($ENV{MOD_PERL_API_VERSION} == 2) {
+			if (!@ChildConnect) {
+				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 (!@ChildConnect and Apache->can('push_handlers')) {
+     	  Apache->push_handlers(PerlChildInitHandler => \&childinit);
+   		}
+		}
      # store connections
      push @ChildConnect, [@_];
  }
@@ -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 (pgollucci@p6m7g8.com) 301.254.5198
Consultant / http://p6m7g8.net/Resume/resume.shtml
Senior Developer / Liquidity Services, Inc.
	http://www.liquidityservicesinc.com

Mime
View raw message