You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl@perl.apache.org by Michael Blakeley <mi...@blakeley.com> on 2000/06/01 21:36:32 UTC

Re: Apache::Registry RFE

At 12:40 PM -0700 6/1/2000, Doug MacEachern wrote:
>On Tue, 30 May 2000, Michael Blakeley wrote:
>
>  > $ diff -w Registry.pm.orig Registry.pm
>>  26a27,28
>>  >  $Apache::Registry::AutoLog ||= 32768;
>>  >
>>  155c157,160
>>  <           $r->log_error($errsv);
>>  ---
>>  >            {
>>  >               local $^W = 0;
>>  >               $r->log_error($errsv) if 
>>$Apache::Registry::AutoLog > 0+$errsv
>>  >            }
>>
>>  This way, setting $Apache::Registry::AutoLog = 300 gives me the
>>  behavior I want (no extra log lines for 302, 304, 500) while still
>>  letting "true" eval errors through. The default value should come
>>  pretty close to the original behavior.
>
>thanks for the patch, but we've stopped adding features to
>Apache::Registry.  you can implement this with a subclass of
>Apache::RegistryNG, something like so:

Thanks - but RegistryNG causes problems elsewhere in my code. 
Apache::File::mtime() doesn't seem to work with RegistryNG. The code:

		$mtime = 954291795;
         if (defined $mtime) {
             $r->update_mtime($mtime);
             warn "mtime=".join(',', $mtime, $r->mtime);
             $r->set_last_modified;
         }

works fine in Apache::Registry, but seems to set mtime to 0 in 
Apache::RegistryNG. Since I can't seem to get a handle on this 
problem, I've gone back to Apache::Registry.

Solaris 2.6 + patches, Apache 1.3.9, mod_perl 1.24, perl -V says

Summary of my perl5 (revision 5.0 version 6 subversion 0) configuration:
   Platform:
     osname=solaris, osvers=2.6, archname=sun4-solaris
     uname='sunos mail 5.6 generic_105181-17 sun4u sparc sunw,ultra-5_10 '
     config_args='-des -Dcc=gcc -Dprefix=/usr/local -Doptimize=-g -O 
-Duseshrplib'
     hint=recommended, useposix=true, d_sigaction=define
     usethreads=undef use5005threads=undef useithreads=undef 
usemultiplicity=undef
     useperlio=undef d_sfio=undef uselargefiles=define
     use64bitint=undef use64bitall=undef uselongdouble=undef usesocks=undef
   Compiler:
     cc='gcc', optimize='-g -O', gccversion=2.95.1 19990816 (release)
     cppflags='-DDEBUGGING -fno-strict-aliasing -I/usr/local/include'
     ccflags ='-DDEBUGGING -fno-strict-aliasing -I/usr/local/include 
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64'
     stdchar='unsigned char', d_stdstdio=define, usevfork=false
     intsize=4, longsize=4, ptrsize=4, doublesize=8
     d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
     ivtype='long', ivsize=4, nvtype='double', nvsize=8, 
Off_t='off_t', lseeksize=8
     alignbytes=8, usemymalloc=y, prototype=define
   Linker and Libraries:
     ld='gcc', ldflags =' -L/usr/local/lib '
     libpth=/usr/local/lib /lib /usr/lib /usr/ccs/lib
     libs=-lsocket -lnsl -ldl -lm -lc -lcrypt -lsec
     libc=/lib/libc.so, so=so, useshrplib=true, libperl=libperl.so
   Dynamic Linking:
     dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='  -R 
/usr/local/lib/perl5/5.6.0/sun4-solaris/CORE'
     cccdlflags='-fPIC', lddlflags='-G -L/usr/local/lib'


Characteristics of this binary (from libperl):
   Compile-time options: DEBUGGING USE_LARGE_FILES
   Built under solaris
   Compiled at Apr  2 2000 14:37:00
   @INC:
     /usr/local/lib/perl5/5.6.0/sun4-solaris
     /usr/local/lib/perl5/5.6.0
     /usr/local/lib/perl5/site_perl/5.6.0/sun4-solaris
     /usr/local/lib/perl5/site_perl/5.6.0
     /usr/local/lib/perl5/site_perl/5.005/sun4-solaris
     /usr/local/lib/perl5/site_perl/5.005
     /usr/local/lib/perl5/site_perl
     .

-- Mike

Re: Apache::Registry RFE

Posted by Doug MacEachern <do...@covalent.net>.
> Thanks - but RegistryNG causes problems elsewhere in my code. 
> Apache::File::mtime() doesn't seem to work with RegistryNG. The code:

whoops!!  Apache::PerlRun/RegistryNG were written before apache introduced
the ap_update_mtime api function.  i've renamed Apache::PerlRun's version
to set_mtime, as it is not supposed to override Apache::update_mtime.

Index: lib/Apache/PerlRun.pm
===================================================================
RCS file: /home/cvs/modperl/lib/Apache/PerlRun.pm,v
retrieving revision 1.28
diff -u -r1.28 PerlRun.pm
--- lib/Apache/PerlRun.pm	2000/05/12 07:10:57	1.28
+++ lib/Apache/PerlRun.pm	2000/06/01 21:05:12
@@ -104,7 +104,7 @@
       $Apache::Registry->{$package}{'mtime'} <= $mtime);
 }
 
-sub update_mtime {
+sub set_mtime {
     my($pr, $mtime, $package) = @_;
     $mtime   ||= $pr->{'mtime'};
     $package ||= $pr->{'namespace'};
Index: lib/Apache/RegistryNG.pm
===================================================================
RCS file: /home/cvs/modperl/lib/Apache/RegistryNG.pm,v
retrieving revision 1.5
diff -u -r1.5 RegistryNG.pm
--- lib/Apache/RegistryNG.pm	1999/06/11 02:50:01	1.5
+++ lib/Apache/RegistryNG.pm	2000/06/01 21:05:12
@@ -45,7 +45,7 @@
 	$pr->sub_wrap;
 	my $rc = $pr->compile;
         return $rc if $rc != OK;
-	$pr->update_mtime;
+	$pr->set_mtime;
     }
 
     $rc = $pr->run(@_);