stas 2003/08/05 23:46:35
Modified: src/modules/perl mod_perl.c modperl_apache_includes.h . Changes Log: don't try to read PERL_HASH_SEED env var, where apr_env_get is not available (apr < 0.9.3) Revision Changes Path 1.175 +6 -2 modperl-2.0/src/modules/perl/mod_perl.c Index: mod_perl.c =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/mod_perl.c,v retrieving revision 1.174 retrieving revision 1.175 diff -u -r1.174 -r1.175 --- mod_perl.c 30 Jul 2003 12:18:06 -0000 1.174 +++ mod_perl.c 6 Aug 2003 06:46:35 -0000 1.175 @@ -25,8 +25,11 @@ static void modperl_hash_seed_init(apr_pool_t *p) { #ifdef MP_NEED_HASH_SEED_FIXUP - char *s; +/* XXX: not sure how to portably handle env reading for older apr + * libs, for now just ignore it */ +#ifdef APR_VERSION_0_9_3_PLUS + char *s; /* check if there is a specific hash seed passed via the env var * and if that's the case -- use it */ apr_status_t rv = apr_env_get(&s, "PERL_HASH_SEED", p); @@ -39,7 +42,8 @@ MP_init_hash_seed_set = TRUE; } } - +#endif + /* calculate our own random hash seed */ if (!MP_init_hash_seed_set) { apr_uuid_t *uuid = (apr_uuid_t *)safemalloc(sizeof(apr_uuid_t)); 1.25 +16 -1 modperl-2.0/src/modules/perl/modperl_apache_includes.h Index: modperl_apache_includes.h =================================================================== RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_apache_includes.h,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- modperl_apache_includes.h 30 Jul 2003 12:18:06 -0000 1.24 +++ modperl_apache_includes.h 6 Aug 2003 06:46:35 -0000 1.25 @@ -20,6 +20,17 @@ #include "ap_mpm.h" #include "apr_version.h" + +/* 2.0.36 is APR_0_9_0-dev */ + +#if APR_MAJOR_VERSION == 0 && APR_MINOR_VERSION == 9 && APR_PATCH_VERSION < 3 +/* apr < 0.9.3 */ +#define APR_VERSION_0_9_3_MINUS +#else +/* apr >= 0.9.3 */ +#define APR_VERSION_0_9_3_PLUS +#endif + #ifndef APR_POLLIN /* * apr_poll.h introduced around 2.0.40 @@ -36,10 +47,14 @@ #include "apr_network_io.h" #include "apr_general.h" #include "apr_uuid.h" -#include "apr_env.h" #include "util_filter.h" #include "util_script.h" + + +#ifdef APR_VERSION_0_9_3_PLUS +#include "apr_env.h" +#endif #endif /* MODPERL_APACHE_INCLUDES_H */ 1.202 +6 -0 modperl-2.0/Changes Index: Changes =================================================================== RCS file: /home/cvs/modperl-2.0/Changes,v retrieving revision 1.201 retrieving revision 1.202 diff -u -r1.201 -r1.202 --- Changes 30 Jul 2003 12:18:06 -0000 1.201 +++ Changes 6 Aug 2003 06:46:35 -0000 1.202 @@ -12,6 +12,12 @@ =item 1.99_10-dev +don't try to read PERL_HASH_SEED env var, where apr_env_get is not +available (apr < 0.9.3) [Stas] + +APR.so now can be loaded and used outside mod_perl (all the way back +to httpd 2.0.36) [Stas] + perl 5.8.1 randomizes the hash seed, because we precalculate the hash values of mgv elements the hash seed has to be the same across all perl interpreters. So mod_perl now intercepts cases where perl would