# $Id: Apache-Server-StrictPerlSections.patch,v 1.3 2003/02/26 06:41:00 gozer Exp $ Index: STATUS =================================================================== RCS file: /home/cvspublic/modperl-2.0/STATUS,v retrieving revision 1.34 diff -u -I'$Id' -I'$Revision' -r1.34 STATUS --- STATUS 20 Feb 2003 00:41:51 -0000 1.34 +++ STATUS 26 Feb 2003 06:39:42 -0000 @@ -154,7 +154,6 @@ * Apache::PerlSections missing features for backwards compatibility: - $Apache::Server::SaveConfig - $Apache::ReadConfig::DocumentRoot - - $Apache::Server::StrictPerlSections - Apache::PerlSections->store(filename) Report: Philippe M. Chiasson <[EMAIL PROTECTED]>
Index: src/modules/perl/modperl_cmd.c
===================================================================
RCS file: /home/cvspublic/modperl-2.0/src/modules/perl/modperl_cmd.c,v
retrieving revision 1.37
diff -u -I'$Id' -I'$Revision' -r1.37 modperl_cmd.c
--- src/modules/perl/modperl_cmd.c 21 Dec 2002 03:46:07 -0000 1.37
+++ src/modules/perl/modperl_cmd.c 26 Feb 2003 06:39:47 -0000
@@ -316,6 +316,8 @@
#define MP_DEFAULT_PERLSECTION_HANDLER "Apache::PerlSection"
#define MP_DEFAULT_PERLSECTION_PACKAGE "Apache::ReadConfig"
+#define MP_STRICT_PERLSECTIONS_SV \
+get_sv("Apache::Server::StrictPerlSections", FALSE)
MP_CMD_SRV_DECLARE(perldo)
{
@@ -369,7 +371,17 @@
eval_pv(arg, FALSE);
if (SvTRUE(ERRSV)) {
- return SvPVX(ERRSV);
+ SV *strict;
+ if ((strict = MP_STRICT_PERLSECTIONS_SV) && SvTRUE(strict)) {
+ return SvPVX(ERRSV);
+ }
+ else {
+ modperl_log_warn(s, apr_psprintf(p, "Syntax error at %s:%d %s",
+ parms->directive->filename,
+ parms->directive->line_num,
+ SvPVX(ERRSV)));
+
+ }
}
if (handler) {
On Wed, 2003-02-26 at 14:02, Stas Bekman wrote:
> Philippe M. Chiasson wrote:
> > if $Apache::Server::StrictPerlSections is true, syntax error in <Perl >
> > sections aborts server startup, otherwise, you only get a warning.
> [...]
> > +#define MP_STRICT_PERLSECTIONS_SV \
> > +perl_get_sv("Apache::Server::StrictPerlSections", FALSE)
>
> perlapi.pod says that perl_ should be dropped:
>
> get_sv Returns the SV of the specified Perl scalar. If "create" is
> set and the Perl variable does not exist then it will be cre-
> ated. If "create" is not set and the variable does not exist
> then NULL is returned.
>
> NOTE: the perl_ form of this function is deprecated.
>
> SV* get_sv(const char* name, I32 create)
>
>
> > MP_CMD_SRV_DECLARE(perldo)
> > {
> > @@ -327,6 +329,7 @@
> > const char *package_name = NULL;
> > int status = OK;
> > AV *args = Nullav;
> > + SV *sv;
> > #ifdef USE_ITHREADS
> > MP_dSCFG(s);
> > pTHX;
> > @@ -369,7 +372,16 @@
> > eval_pv(arg, FALSE);
> >
> > if (SvTRUE(ERRSV)) {
> > - return SvPVX(ERRSV);
>
> could move 'SV *sv' in here
>
> > + if ((sv = MP_STRICT_PERLSECTIONS_SV) && SvTRUE(sv)) {
>
> the same perlapi entry says, that NULL is returned if get_sv(...,FALSE)
> doesn't find that variable. So shouldn't it check:
>
> if ((sv = MP_STRICT_PERLSECTIONS_SV) != NULL )
>
> or is it essentially the same?
>
> otherwise +1
>
> __________________________________________________________________
> Stas Bekman JAm_pH ------> Just Another mod_perl Hacker
> http://stason.org/ mod_perl Guide ---> http://perl.apache.org
> mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
> http://modperlbook.org http://apache.org http://ticketmaster.com
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
--
--------------------------------------------------------------------------------
Philippe M. Chiasson /[EMAIL PROTECTED](x|X)tropia\.com/ 88C3A5A5
(122FF51B/C634E37B)
http://www.eXtropia.com/ F9BF E0C2 480E 7680 1AE5 3631 CB32 A107
88C3 A5A5
signature.asc
Description: This is a digitally signed message part
