I'm tired of disabling IPC::SysV in AuthDBI.pm for every update. Please check some fix like this in.
no strict in the child handlers cannot be evaluated at run-time but is needed for Win32. Better ways?
Tested with Randy Cobes mod_perl binary for Win32. Active Perl 633, v5.6.1 built for MSWin32-x86-multi-thread
PS: I'm not subscribed to this list. -- Reini Urban http://xarch.tu-graz.ac.at/home/rurban/
--- Apache-DBI-0.91/Changes~ 2003-02-17 14:02:27.000000000 +0100 +++ Apache-DBI-0.91/Changes 2003-04-02 11:16:24.000000000 +0200 @@ -1,5 +1,8 @@ Revision history for ApacheDBI. +0.91_01 April 2, 2003 + - MSWin32 fix: disable IPC::SysV + 0.91 February 17, 2003 - Retagged and released the 0.90_02 beta as 0.91. No code changes. --- Apache-DBI-0.91/AuthDBI.pm~ 2003-02-17 14:00:12.000000000 +0100 +++ Apache-DBI-0.91/AuthDBI.pm 2003-04-02 11:15:12.000000000 +0200 @@ -3,7 +3,10 @@ use Apache (); use Apache::Constants qw( OK AUTH_REQUIRED FORBIDDEN DECLINED SERVER_ERROR ); use DBI (); -use IPC::SysV qw( IPC_CREAT IPC_RMID S_IRUSR S_IWUSR ); +if ($^O ne 'MSWin32') { + require IPC::SysV; + import IPC::SysV qw( IPC_CREAT IPC_RMID S_IRUSR S_IWUSR ); +} use strict; # $Id: AuthDBI.pm,v 1.3 2003/02/17 13:00:12 ask Exp $ @@ -644,6 +647,7 @@ # Note: this handler runs in every child server, but not in the main server. sub childinit { + no strict; # for $^O eq 'MSWin32' only my $prefix = "$$ Apache::AuthDBI PerlChildInitHandler"; # create (or re-use existing) semaphore set $SEMID = semget($SHMKEY, 1, IPC_CREAT|S_IRUSR|S_IWUSR); @@ -685,6 +689,7 @@ # Note: this handler runs in every child server, but not in the main server. sub childexit { + no strict; # for $^O eq 'MSWin32' only my $prefix = "$$ Apache::AuthDBI PerlChildExitHandler"; # read Cache from shared memory, decrement child count and exit or write Cache to shared memory semop($SEMID, $obtain_lock) or print STDERR "$prefix semop failed \n";