cholet 00/07/24 06:33:03
Modified: src/modules/perl mod_perl.h perl_config.c
Log:
revert my latest change, my editor suddenly decided to untabify everything, burying
the actual change
Revision Changes Path
1.100 +34 -34 modperl/src/modules/perl/mod_perl.h
Index: mod_perl.h
===================================================================
RCS file: /home/cvs/modperl/src/modules/perl/mod_perl.h,v
retrieving revision 1.99
retrieving revision 1.100
diff -u -r1.99 -r1.100
--- mod_perl.h 2000/07/24 13:22:55 1.99
+++ mod_perl.h 2000/07/24 13:33:00 1.100
@@ -64,7 +64,7 @@
#include <malloc.h>
#include <win32.h>
#include <win32iop.h>
-#include <fcntl.h> // For O_BINARY
+#include <fcntl.h> // For O_BINARY
#include "EXTERN.h"
#include "perl.h"
#include <iperlsys.h>
@@ -195,7 +195,7 @@
#endif
#ifndef AvFILLp
-#define AvFILLp(av) ((XPVAV*) SvANY(av))->xav_fill
+#define AvFILLp(av) ((XPVAV*) SvANY(av))->xav_fill
#endif
#ifdef eval_pv
@@ -300,7 +300,7 @@
#define av_copy_array(av) av_make(av_len(av)+1, AvARRAY(av))
#ifndef newRV_noinc
-#define newRV_noinc(sv) ((Sv = newRV(sv)), --SvREFCNT(SvRV(Sv)), Sv)
+#define newRV_noinc(sv) ((Sv = newRV(sv)), --SvREFCNT(SvRV(Sv)), Sv)
#endif
#ifndef SvTAINTED_on
@@ -349,14 +349,14 @@
#define mp_debug mod_perl_debug_flags
-extern U32 mp_debug;
+extern U32 mp_debug;
#ifdef PERL_TRACE
-#define MP_TRACE(a) if (mp_debug) a
-#define MP_TRACE_d(a) if (mp_debug & 1) a /* directives */
-#define MP_TRACE_s(a) if (mp_debug & 2) a /* perl sections */
-#define MP_TRACE_h(a) if (mp_debug & 4) a /* handlers */
-#define MP_TRACE_g(a) if (mp_debug & 8) a /* globals and allocation */
+#define MP_TRACE(a) if (mp_debug) a
+#define MP_TRACE_d(a) if (mp_debug & 1) a /* directives */
+#define MP_TRACE_s(a) if (mp_debug & 2) a /* perl sections */
+#define MP_TRACE_h(a) if (mp_debug & 4) a /* handlers */
+#define MP_TRACE_g(a) if (mp_debug & 8) a /* globals and allocation */
#define MP_TRACE_c(a) if (mp_debug & 16) a /* directive handlers */
#ifndef PERL_MARK_WHERE
#define PERL_MARK_WHERE
@@ -405,14 +405,14 @@
#define MPf_Off -1
#define MPf_None 0
-#define MPf_INCPUSH 0x00000100 /* use lib split ":", $ENV{PERL5LIB} */
-#define MPf_SENDHDR 0x00000200 /* is PerlSendHeader On? */
-#define MPf_SENTHDR 0x00000400 /* has PerlSendHeader sent the headers? */
-#define MPf_ENV 0x00000800 /* PerlSetupEnv */
-#define MPf_HASENV 0x00001000 /* do we have any PerlSetEnv's? */
-#define MPf_DSTDERR 0x00002000 /* redirect stderr to error_log */
-#define MPf_CLEANUP 0x00004000 /* did we register our cleanup ? */
-#define MPf_RCLEANUP 0x00008000 /* for $r->register_cleanup */
+#define MPf_INCPUSH 0x00000100 /* use lib split ":", $ENV{PERL5LIB} */
+#define MPf_SENDHDR 0x00000200 /* is PerlSendHeader On? */
+#define MPf_SENTHDR 0x00000400 /* has PerlSendHeader sent the headers? */
+#define MPf_ENV 0x00000800 /* PerlSetupEnv */
+#define MPf_HASENV 0x00001000 /* do we have any PerlSetEnv's? */
+#define MPf_DSTDERR 0x00002000 /* redirect stderr to error_log */
+#define MPf_CLEANUP 0x00004000 /* did we register our cleanup ? */
+#define MPf_RCLEANUP 0x00008000 /* for $r->register_cleanup */
#define MP_FMERGE(new,add,base,f) \
if((add->flags & f) || (base->flags & f)) \
@@ -442,7 +442,7 @@
#define MP_ENV_off(d) (d->flags &= ~MPf_ENV)
#endif
-#define MP_ENV(d) (d->SetupEnv != MPf_Off)
+#define MP_ENV(d) (d->SetupEnv == MPf_On)
#define MP_ENV_on(d) (d->SetupEnv = MPf_On)
#define MP_ENV_off(d) (d->SetupEnv = MPf_Off)
@@ -535,13 +535,13 @@
#define HAS_CONTEXT MODULE_MAGIC_AT_LEAST(MMN_136,2)
#if HAS_CONTEXT
-#define CAN_SELF_BOOT_SECTIONS (PERL_SECTIONS_SELF_BOOT)
-#define SECTION_ALLOWED OR_ALL
-#define USABLE_CONTEXT parms->context
-#else
-#define CAN_SELF_BOOT_SECTIONS ((parms->path==NULL)&&PERL_SECTIONS_SELF_BOOT)
-#define SECTION_ALLOWED RSRC_CONF
-#define USABLE_CONTEXT parms->server->lookup_defaults
+#define CAN_SELF_BOOT_SECTIONS (PERL_SECTIONS_SELF_BOOT)
+#define SECTION_ALLOWED OR_ALL
+#define USABLE_CONTEXT parms->context
+#else
+#define CAN_SELF_BOOT_SECTIONS ((parms->path==NULL)&&PERL_SECTIONS_SELF_BOOT)
+#define SECTION_ALLOWED RSRC_CONF
+#define USABLE_CONTEXT parms->server->lookup_defaults
#endif
#define APACHE_SSL_12X (defined(APACHE_SSL) && (MODULE_MAGIC_NUMBER < MMN_130))
@@ -598,7 +598,7 @@
"access to %s failed for %s, reason: %s", \
file, \
get_remote_host(r->connection, \
- r->per_dir_config, REMOTE_NAME), \
+ r->per_dir_config, REMOTE_NAME), \
msg)
#else
@@ -642,9 +642,9 @@
#undef create_mutex
#undef acquire_mutex
#undef release_mutex
-#define create_mutex(name) ((void *)mod_perl_dummy_mutex)
-#define acquire_mutex(mutex_id) ((int)MULTI_OK)
-#define release_mutex(mutex_id) ((int)MULTI_OK)
+#define create_mutex(name) ((void *)mod_perl_dummy_mutex)
+#define acquire_mutex(mutex_id) ((int)MULTI_OK)
+#define release_mutex(mutex_id) ((int)MULTI_OK)
#endif /* MULTITHREAD_H */
#endif /* WIN32 */
@@ -784,7 +784,7 @@
#define PERL_CHILD_INIT_CMD_ENTRY \
"PerlChildInitHandler", (crft) perl_cmd_child_init_handlers, \
- NULL, \
+ NULL, \
RSRC_CONF, PERL_TAKE, "the Perl Child init handler routine name"
#define PERL_CHILD_INIT_CREATE(s) s->PerlChildInitHandler = PERL_CMD_INIT
@@ -801,7 +801,7 @@
#define PERL_CHILD_EXIT_CMD_ENTRY \
"PerlChildExitHandler", (crft) perl_cmd_child_exit_handlers, \
- NULL, \
+ NULL, \
RSRC_CONF, PERL_TAKE, "the Perl Child exit handler routine name"
#define PERL_CHILD_EXIT_CREATE(s) s->PerlChildExitHandler = PERL_CMD_INIT
@@ -816,7 +816,7 @@
#define PERL_RESTART_CMD_ENTRY \
"PerlRestartHandler", (crft) perl_cmd_restart_handlers, \
- NULL, \
+ NULL, \
RSRC_CONF, PERL_TAKE, "the Perl Restart handler routine name"
#define PERL_RESTART_CREATE(s) s->PerlRestartHandler = PERL_CMD_INIT
@@ -856,7 +856,7 @@
#define PERL_TRANS_CMD_ENTRY \
"PerlTransHandler", (crft) perl_cmd_trans_handlers, \
- NULL, \
+ NULL, \
RSRC_CONF, PERL_TAKE, "the Perl Translation handler routine name"
#define PERL_TRANS_CREATE(s) s->PerlTransHandler = PERL_CMD_INIT
@@ -1250,7 +1250,7 @@
CHAR_P perl_cmd_perl_TAKE1(cmd_parms *cmd, mod_perl_perl_dir_config *d, char *one);
CHAR_P perl_cmd_perl_TAKE2(cmd_parms *cmd, mod_perl_perl_dir_config *d, char *one,
char *two);
CHAR_P perl_cmd_perl_TAKE123(cmd_parms *cmd, mod_perl_perl_dir_config *d,
- char *one, char *two, char *three);
+ char *one, char *two, char *three);
CHAR_P perl_cmd_perl_FLAG(cmd_parms *cmd, mod_perl_perl_dir_config *d, int flag);
#define perl_cmd_perl_RAW_ARGS perl_cmd_perl_TAKE1
1.99 +538 -538 modperl/src/modules/perl/perl_config.c
Index: perl_config.c
===================================================================
RCS file: /home/cvs/modperl/src/modules/perl/perl_config.c,v
retrieving revision 1.98
retrieving revision 1.99
diff -u -r1.98 -r1.99
--- perl_config.c 2000/07/24 13:22:55 1.98
+++ perl_config.c 2000/07/24 13:33:01 1.99
@@ -90,16 +90,16 @@
char *tmp = SvPV(sv,len);
if(!SvTRUE(sv))
- return;
+ return;
Move(tmp, buf, bufsiz, char);
if(len < bufsiz) {
- sv_setpv(sv, "");
+ sv_setpv(sv, "");
}
else {
- tmp += bufsiz;
- sv_setpv(sv, tmp);
+ tmp += bufsiz;
+ sv_setpv(sv, tmp);
}
}
@@ -111,14 +111,14 @@
register int retval = *tmp;
if(!SvTRUE(sv))
- return EOF;
+ return EOF;
if(len <= 1) {
- sv_setpv(sv, "");
+ sv_setpv(sv, "");
}
else {
- ++tmp;
- sv_setpv(sv, tmp);
+ ++tmp;
+ sv_setpv(sv, tmp);
}
return retval;
@@ -127,8 +127,8 @@
void perl_eat_config_string(cmd_parms *cmd, void *config, SV *sv) {
CHAR_P errmsg;
configfile_t *perl_cfg =
- pcfg_open_custom(cmd->pool, "mod_perl", (void*)sv,
- perl_config_getch, NULL, NULL);
+ pcfg_open_custom(cmd->pool, "mod_perl", (void*)sv,
+ perl_config_getch, NULL, NULL);
configfile_t *old_cfg = cmd->config_file;
cmd->config_file = perl_cfg;
@@ -136,7 +136,7 @@
cmd->config_file = old_cfg;
if(errmsg)
- fprintf(stderr, "mod_perl: %s\n", errmsg);
+ fprintf(stderr, "mod_perl: %s\n", errmsg);
}
#define STRING_MEAL(s) ( (*s == 'P') && strEQ(s,"PerlConfig") )
@@ -156,9 +156,9 @@
(core_dir_config *)get_module_config(r->per_dir_config, &core_module);
if(val) {
- conf->auth_name = pstrdup(r->pool, val);
- set_module_config(r->per_dir_config, &core_module, (void*)conf);
- MP_TRACE_g(fprintf(stderr, "mod_perl: setting auth_name to %s\n",
conf->auth_name));
+ conf->auth_name = pstrdup(r->pool, val);
+ set_module_config(r->per_dir_config, &core_module, (void*)conf);
+ MP_TRACE_g(fprintf(stderr, "mod_perl: setting auth_name to %s\n",
conf->auth_name));
}
return conf->auth_name;
@@ -170,17 +170,17 @@
void mod_perl_dir_env(request_rec *r, perl_dir_config *cld)
{
if(MP_HASENV(cld)) {
- array_header *arr = table_elts(cld->env);
- table_entry *elts = (table_entry *)arr->elts;
+ array_header *arr = table_elts(cld->env);
+ table_entry *elts = (table_entry *)arr->elts;
- int i;
- for (i = 0; i < arr->nelts; ++i) {
- MP_TRACE_d(fprintf(stderr, "mod_perl_dir_env: %s=`%s'",
- elts[i].key, elts[i].val));
- mp_setenv(elts[i].key, elts[i].val);
- ap_table_setn(r->subprocess_env, elts[i].key, elts[i].val);
- }
- MP_HASENV_off(cld); /* just doit once per-request */
+ int i;
+ for (i = 0; i < arr->nelts; ++i) {
+ MP_TRACE_d(fprintf(stderr, "mod_perl_dir_env: %s=`%s'",
+ elts[i].key, elts[i].val));
+ mp_setenv(elts[i].key, elts[i].val);
+ ap_table_setn(r->subprocess_env, elts[i].key, elts[i].val);
+ }
+ MP_HASENV_off(cld); /* just doit once per-request */
}
}
@@ -193,17 +193,17 @@
keys = (char **)cls->PerlPassEnv->elts;
for (i = 0; i < cls->PerlPassEnv->nelts; ++i) {
- key = keys[i];
+ key = keys[i];
if(!(val = getenv(key)) && (ind(key, ':') > 0)) {
- CHAR_P tmp = pstrdup(p, key);
- key = getword(p, &tmp, ':');
- val = (char *)tmp;
- }
+ CHAR_P tmp = pstrdup(p, key);
+ key = getword(p, &tmp, ':');
+ val = (char *)tmp;
+ }
if(val != NULL) {
- MP_TRACE_d(fprintf(stderr, "PerlPassEnv: `%s'=`%s'\n", key, val));
- mp_SetEnv(key,pstrdup(p,val));
+ MP_TRACE_d(fprintf(stderr, "PerlPassEnv: `%s'=`%s'\n", key, val));
+ mp_SetEnv(key,pstrdup(p,val));
}
}
}
@@ -221,16 +221,16 @@
/* XXX: what triggers such a condition ?*/
if(vars && (vars->nelts > 100000)) {
- fprintf(stderr, "[warning] PerlSetVar->nelts = %d\n", vars->nelts);
+ fprintf(stderr, "[warning] PerlSetVar->nelts = %d\n", vars->nelts);
}
mrg->vars = overlay_tables(p, add->vars, base->vars);
mrg->env = overlay_tables(p, add->env, base->env);
mrg->SendHeader = (add->SendHeader != MPf_None) ?
- add->SendHeader : base->SendHeader;
+ add->SendHeader : base->SendHeader;
mrg->SetupEnv = (add->SetupEnv != MPf_None) ?
- add->SetupEnv : base->SetupEnv;
+ add->SetupEnv : base->SetupEnv;
/* merge flags */
MP_FMERGE(mrg,add,base,MPf_INCPUSH);
@@ -291,14 +291,14 @@
void *perl_create_dir_config (pool *p, char *dirname)
{
perl_dir_config *cld =
- (perl_dir_config *)palloc(p, sizeof (perl_dir_config));
+ (perl_dir_config *)palloc(p, sizeof (perl_dir_config));
cld->location = pstrdup(p, dirname);
cld->vars = make_table(p, 5);
cld->env = make_table(p, 5);
cld->flags = MPf_ENV;
cld->SendHeader = MPf_None;
- cld->SetupEnv = MPf_None;
+ cld->SetupEnv = MPf_On;
cld->PerlHandler = PERL_CMD_INIT;
PERL_DISPATCH_CREATE(cld);
PERL_AUTHEN_CREATE(cld);
@@ -367,7 +367,7 @@
void *perl_create_server_config (pool *p, server_rec *s)
{
perl_server_config *cls =
- (perl_server_config *)palloc(p, sizeof (perl_server_config));
+ (perl_server_config *)palloc(p, sizeof (perl_server_config));
cls->PerlPassEnv = make_array(p, 1, sizeof(char *));
cls->PerlModule = make_array(p, 1, sizeof(char *));
@@ -393,7 +393,7 @@
{
int i;
perl_request_config *cfg =
- (perl_request_config *)pcalloc(p, sizeof(perl_request_config));
+ (perl_request_config *)pcalloc(p, sizeof(perl_request_config));
cfg->pnotes = Nullhv;
cfg->setup_env = 0;
@@ -401,14 +401,14 @@
cfg->sigsave = make_array(p, 1, sizeof(perl_request_sigsave *));
for (i=0; sigsave[i]; i++) {
- perl_request_sigsave *sig =
- (perl_request_sigsave *)pcalloc(p, sizeof(perl_request_sigsave));
- sig->signo = whichsig(sigsave[i]);
- sig->h = rsignal_state(sig->signo);
- MP_TRACE_g(fprintf(stderr,
- "mod_perl: saving SIG%s (%d) handler 0x%lx\n",
- sigsave[i], (int)sig->signo, (unsigned long)sig->h));
- *(perl_request_sigsave **)push_array(cfg->sigsave) = sig;
+ perl_request_sigsave *sig =
+ (perl_request_sigsave *)pcalloc(p, sizeof(perl_request_sigsave));
+ sig->signo = whichsig(sigsave[i]);
+ sig->h = rsignal_state(sig->signo);
+ MP_TRACE_g(fprintf(stderr,
+ "mod_perl: saving SIG%s (%d) handler 0x%lx\n",
+ sigsave[i], (int)sig->signo, (unsigned long)sig->h));
+ *(perl_request_sigsave **)push_array(cfg->sigsave) = sig;
}
#endif
@@ -428,10 +428,10 @@
if(!PERL_RUNNING()) return;
if(!perl_module_is_loaded(*name)) {
- MP_TRACE_d(fprintf(stderr,
- "mod_perl: attempting to pre-load module `%s'\n",
- *name));
- perl_require_module(*name,NULL);
+ MP_TRACE_d(fprintf(stderr,
+ "mod_perl: attempting to pre-load module `%s'\n",
+ *name));
+ perl_require_module(*name,NULL);
}
}
#endif
@@ -445,8 +445,8 @@
sva = newSVpv(arg,0);
if(!*cmd) {
*cmd = newAV();
- register_cleanup(p, (void*)*cmd, mod_perl_cleanup_av, mod_perl_noop);
- MP_TRACE_d(fprintf(stderr, "init `%s' stack\n", hook));
+ register_cleanup(p, (void*)*cmd, mod_perl_cleanup_av, mod_perl_noop);
+ MP_TRACE_d(fprintf(stderr, "init `%s' stack\n", hook));
}
MP_TRACE_d(fprintf(stderr, "perl_cmd_push_handlers: @%s, '%s'\n", hook, arg));
mod_perl_push_handlers(&sv_yes, hook, sva, *cmd);
@@ -562,11 +562,11 @@
{
dPSRV(parms->server);
if(parms->path) {
- PERL_CMD_PUSH_HANDLERS("PerlInitHandler",
- ((perl_dir_config *)rec)->PerlInitHandler);
+ PERL_CMD_PUSH_HANDLERS("PerlInitHandler",
+ ((perl_dir_config *)rec)->PerlInitHandler);
}
else {
- PERL_CMD_PUSH_HANDLERS("PerlInitHandler", cls->PerlInitHandler);
+ PERL_CMD_PUSH_HANDLERS("PerlInitHandler", cls->PerlInitHandler);
}
}
@@ -584,23 +584,23 @@
MP_TRACE_d(fprintf(stderr, "PerlModule: arg='%s'\n", arg));
if(PERL_RUNNING()) {
- if (PERL_STARTUP_IS_DONE) {
- if (perl_require_module(arg, NULL) != OK) {
- dTHR;
- STRLEN n_a;
- dTHRCTX;
- return SvPV(ERRSV,n_a);
- }
- }
- else {
- return NULL;
+ if (PERL_STARTUP_IS_DONE) {
+ if (perl_require_module(arg, NULL) != OK) {
+ dTHR;
+ STRLEN n_a;
+ dTHRCTX;
+ return SvPV(ERRSV,n_a);
+ }
+ }
+ else {
+ return NULL;
+ }
}
- }
*(char **)push_array(cls->PerlModule) = pstrdup(parms->pool, arg);
#ifdef PERL_SECTIONS
if(CAN_SELF_BOOT_SECTIONS)
- perl_section_self_boot(parms, dummy, arg);
+ perl_section_self_boot(parms, dummy, arg);
#endif
return NULL;
@@ -614,24 +614,24 @@
MP_TRACE_d(fprintf(stderr, "PerlRequire: arg=`%s'\n", arg));
if(PERL_RUNNING()) {
- if (PERL_STARTUP_IS_DONE) {
- if (perl_load_startup_script(parms->server, parms->pool, arg, TRUE) != OK) {
- dTHR;
- STRLEN n_a;
- dTHRCTX;
- return SvPV(ERRSV,n_a);
- }
- else {
- return NULL;
- }
- }
+ if (PERL_STARTUP_IS_DONE) {
+ if (perl_load_startup_script(parms->server, parms->pool, arg, TRUE) != OK)
{
+ dTHR;
+ STRLEN n_a;
+ dTHRCTX;
+ return SvPV(ERRSV,n_a);
+ }
+ else {
+ return NULL;
+ }
+ }
}
*(char **)push_array(cls->PerlRequire) = pstrdup(parms->pool, arg);
#ifdef PERL_SECTIONS
if(CAN_SELF_BOOT_SECTIONS)
- perl_section_self_boot(parms, dummy, arg);
+ perl_section_self_boot(parms, dummy, arg);
#endif
return NULL;
@@ -658,14 +658,14 @@
cls->PerlTaintCheck = arg;
if(PERL_RUNNING()) {
- gv = GvSV_init("Apache::__T");
- if(arg) {
- SvREADONLY_off(GvSV(gv));
- GvSV_setiv(gv, TRUE);
- SvREADONLY_on(GvSV(gv));
- tainting = TRUE;
+ gv = GvSV_init("Apache::__T");
+ if(arg) {
+ SvREADONLY_off(GvSV(gv));
+ GvSV_setiv(gv, TRUE);
+ SvREADONLY_on(GvSV(gv));
+ tainting = TRUE;
+ }
}
- }
}
CHAR_P perl_cmd_tainting (cmd_parms *parms, void *dummy, int arg)
@@ -696,9 +696,9 @@
CHAR_P perl_cmd_sendheader (cmd_parms *cmd, perl_dir_config *rec, int arg) {
if(arg)
- MP_SENDHDR_on(rec);
+ MP_SENDHDR_on(rec);
else
- MP_SENDHDR_off(rec);
+ MP_SENDHDR_off(rec);
MP_SENTHDR_on(rec);
return NULL;
}
@@ -707,7 +707,7 @@
{
dPSRV(parms->server);
if(PERL_RUNNING()) {
- mp_PassEnv(arg);
+ mp_PassEnv(arg);
}
*(char **)push_array(cls->PerlPassEnv) = pstrdup(parms->pool, arg);
@@ -719,7 +719,7 @@
CHAR_P perl_cmd_env (cmd_parms *cmd, perl_dir_config *rec, int arg) {
if(arg) MP_ENV_on(rec);
- else MP_ENV_off(rec);
+ else MP_ENV_off(rec);
MP_TRACE_d(fprintf(stderr, "perl_cmd_env: set to `%s'\n", arg ? "On" : "Off"));
return NULL;
}
@@ -754,12 +754,12 @@
MP_HASENV_on(rec);
MP_TRACE_d(fprintf(stderr, "perl_cmd_setenv: '%s' = '%s'\n", key, val));
if(cmd->path == NULL) {
- dPSRV(cmd->server);
- if(PERL_RUNNING()) {
- mp_SetEnv(key,val);
- }
- *(char **)push_array(cls->PerlPassEnv) =
- pstrcat(cmd->pool, key, ":", val, NULL);
+ dPSRV(cmd->server);
+ if(PERL_RUNNING()) {
+ mp_SetEnv(key,val);
+ }
+ *(char **)push_array(cls->PerlPassEnv) =
+ pstrcat(cmd->pool, key, ":", val, NULL);
}
return NULL;
}
@@ -769,7 +769,7 @@
char l[MAX_STRING_LEN];
while (!(cfg_getline (l, MAX_STRING_LEN, cmd_infile))) {
- /* soak up the of the file */
+ /* soak up the of the file */
}
return NULL;
@@ -784,21 +784,21 @@
char l[MAX_STRING_LEN];
if(arg && strlen(arg) && !APACHE_POD_FORMAT(arg))
- return "Unknown =end format";
+ return "Unknown =end format";
while (!(cfg_getline (l, MAX_STRING_LEN, cmd_infile))) {
- int chop = 4;
- if(strnEQ(l, "=cut", 4))
- break;
- if(strnEQ(l, "=for", chop) ||
- ((chop = 6) && strnEQ(l, "=begin", chop)))
- {
- char *tmp = l;
- tmp += chop; while(isspace(*tmp)) tmp++;
- if(APACHE_POD_FORMAT(tmp))
- break;
+ int chop = 4;
+ if(strnEQ(l, "=cut", 4))
+ break;
+ if(strnEQ(l, "=for", chop) ||
+ ((chop = 6) && strnEQ(l, "=begin", chop)))
+ {
+ char *tmp = l;
+ tmp += chop; while(isspace(*tmp)) tmp++;
+ if(APACHE_POD_FORMAT(tmp))
+ break;
+ }
}
- }
return NULL;
}
@@ -811,15 +811,15 @@
char line[MAX_STRING_LEN];
if(arg && strlen(arg) && !(APACHE_POD_FORMAT(arg) || strstr(arg, "pod")))
- return "Unknown =back format";
+ return "Unknown =back format";
while (!(cfg_getline (line, sizeof(line), cmd_infile))) {
- if(strnEQ(line, "=cut", 4))
- break;
- if(strnEQ(line, "=over", 5)) {
- if(APACHE_POD_FORMAT(line))
- break;
- }
+ if(strnEQ(line, "=cut", 4))
+ break;
+ if(strnEQ(line, "=over", 5)) {
+ if(APACHE_POD_FORMAT(line))
+ break;
+ }
}
return NULL;
@@ -836,9 +836,9 @@
{
AV *av = (AV*)data;
if(SvREFCNT((SV*)av)) {
- MP_TRACE_g(fprintf(stderr, "cleanup_av: SvREFCNT(0x%lx)==%d\n",
- (unsigned long)av, (int)SvREFCNT((SV*)av)));
- SvREFCNT_dec((SV*)av);
+ MP_TRACE_g(fprintf(stderr, "cleanup_av: SvREFCNT(0x%lx)==%d\n",
+ (unsigned long)av, (int)SvREFCNT((SV*)av)));
+ SvREFCNT_dec((SV*)av);
}
}
@@ -866,7 +866,7 @@
SV *sv = sv_newmortal();
sv_setref_pv(sv, "Apache::CmdParms", (void*)parms);
MP_TRACE_g(fprintf(stderr, "blessing cmd_parms=(0x%lx)\n",
- (unsigned long)parms));
+ (unsigned long)parms));
return sv;
}
@@ -875,9 +875,9 @@
HV *xs_config = perl_get_hv("Apache::XS_ModuleConfig", TRUE);
SV **mod_ptr = hv_fetch(xs_config, name, len, FALSE);
if(mod_ptr && *mod_ptr)
- return (module *)SvIV((SV*)SvRV(*mod_ptr));
+ return (module *)SvIV((SV*)SvRV(*mod_ptr));
else
- return NULL;
+ return NULL;
}
static SV *
@@ -886,39 +886,39 @@
GV *gv;
if(*sv && SvTRUE(*sv) && SvROK(*sv) && sv_isobject(*sv))
- return *sv;
+ return *sv;
/* return $class->type if $class->can(type) */
if((gv = gv_fetchmethod_autoload(pclass, type, FALSE)) && isGV(gv)) {
- int count;
- dSP;
+ int count;
+ dSP;
- ENTER;SAVETMPS;
- PUSHMARK(sp);
- XPUSHs(sv_2mortal(newSVpv(HvNAME(pclass),0)));
- if(parms)
- XPUSHs(perl_bless_cmd_parms(parms));
- PUTBACK;
- count = perl_call_sv((SV*)GvCV(gv), G_EVAL | G_SCALAR);
- SPAGAIN;
- if((perl_eval_ok(parms ? parms->server : NULL) == OK) && (count == 1)) {
- *sv = POPs;
- ++SvREFCNT(*sv);
- }
- PUTBACK;
- FREETMPS;LEAVE;
+ ENTER;SAVETMPS;
+ PUSHMARK(sp);
+ XPUSHs(sv_2mortal(newSVpv(HvNAME(pclass),0)));
+ if(parms)
+ XPUSHs(perl_bless_cmd_parms(parms));
+ PUTBACK;
+ count = perl_call_sv((SV*)GvCV(gv), G_EVAL | G_SCALAR);
+ SPAGAIN;
+ if((perl_eval_ok(parms ? parms->server : NULL) == OK) && (count == 1)) {
+ *sv = POPs;
+ ++SvREFCNT(*sv);
+ }
+ PUTBACK;
+ FREETMPS;LEAVE;
- return *sv;
+ return *sv;
}
else {
- /* return bless {}, $class */
- if(!SvTRUE(*sv)) {
- *sv = newRV_noinc((SV*)newHV());
- return sv_bless(*sv, pclass);
+ /* return bless {}, $class */
+ if(!SvTRUE(*sv)) {
+ *sv = newRV_noinc((SV*)newHV());
+ return sv_bless(*sv, pclass);
+ }
+ else
+ return *sv;
}
- else
- return *sv;
- }
}
static SV *perl_perl_create_dir_config(SV **sv, HV *pclass, cmd_parms *parms)
@@ -935,47 +935,47 @@
{
GV *gv;
mod_perl_perl_dir_config *mrg = NULL,
- *basevp = (mod_perl_perl_dir_config *)basev,
- *addvp = (mod_perl_perl_dir_config *)addv;
+ *basevp = (mod_perl_perl_dir_config *)basev,
+ *addvp = (mod_perl_perl_dir_config *)addv;
SV *sv,
- *basesv = basevp ? basevp->obj : Nullsv,
- *addsv = addvp ? addvp->obj : Nullsv;
+ *basesv = basevp ? basevp->obj : Nullsv,
+ *addsv = addvp ? addvp->obj : Nullsv;
if(!basesv) basesv = addsv;
if(!sv_isobject(basesv))
- return basesv;
+ return basesv;
MP_TRACE_c(fprintf(stderr, "looking for method %s in package `%s'\n",
- meth, SvCLASS(basesv)));
+ meth, SvCLASS(basesv)));
if((gv = gv_fetchmethod_autoload(SvSTASH(SvRV(basesv)), meth, FALSE)) &&
isGV(gv)) {
- int count;
- dSP;
- mrg = (mod_perl_perl_dir_config *)
- palloc(p, sizeof(mod_perl_perl_dir_config));
-
- MP_TRACE_c(fprintf(stderr, "calling %s->%s\n",
- SvCLASS(basesv), meth));
-
- ENTER;SAVETMPS;
- PUSHMARK(sp);
- XPUSHs(basesv);XPUSHs(addsv);
- PUTBACK;
- count = perl_call_sv((SV*)GvCV(gv), G_EVAL | G_SCALAR);
- SPAGAIN;
- if((perl_eval_ok(NULL) == OK) && (count == 1)) {
- sv = POPs;
- ++SvREFCNT(sv);
- mrg->obj = sv;
- mrg->pclass = SvCLASS(sv);
+ int count;
+ dSP;
+ mrg = (mod_perl_perl_dir_config *)
+ palloc(p, sizeof(mod_perl_perl_dir_config));
+
+ MP_TRACE_c(fprintf(stderr, "calling %s->%s\n",
+ SvCLASS(basesv), meth));
+
+ ENTER;SAVETMPS;
+ PUSHMARK(sp);
+ XPUSHs(basesv);XPUSHs(addsv);
+ PUTBACK;
+ count = perl_call_sv((SV*)GvCV(gv), G_EVAL | G_SCALAR);
+ SPAGAIN;
+ if((perl_eval_ok(NULL) == OK) && (count == 1)) {
+ sv = POPs;
+ ++SvREFCNT(sv);
+ mrg->obj = sv;
+ mrg->pclass = SvCLASS(sv);
+ }
+ PUTBACK;
+ FREETMPS;LEAVE;
}
- PUTBACK;
- FREETMPS;LEAVE;
- }
else {
- mrg->obj = newSVsv(basesv);
- mrg->pclass = basevp->pclass;
+ mrg->obj = newSVsv(basesv);
+ mrg->pclass = basevp->pclass;
}
return (void *)mrg;
}
@@ -995,15 +995,15 @@
mod_perl_perl_dir_config *cld = (mod_perl_perl_dir_config *)data;
if(cld->obj) {
- MP_TRACE_c(fprintf(stderr,
- "cmd_cleanup: SvREFCNT($%s::$obj) == %d\n",
- cld->pclass, (int)SvREFCNT(cld->obj)));
- SvREFCNT_dec(cld->obj);
+ MP_TRACE_c(fprintf(stderr,
+ "cmd_cleanup: SvREFCNT($%s::$obj) == %d\n",
+ cld->pclass, (int)SvREFCNT(cld->obj)));
+ SvREFCNT_dec(cld->obj);
}
}
CHAR_P perl_cmd_perl_TAKE123(cmd_parms *cmd, mod_perl_perl_dir_config *data,
- char *one, char *two, char *three)
+ char *one, char *two, char *three)
{
dSP;
mod_perl_cmd_info *info = (mod_perl_cmd_info *)cmd->info;
@@ -1018,39 +1018,39 @@
if(xsmod &&
(sdata = (mod_perl_perl_dir_config
*)get_module_config(cmd->server->module_config, xsmod))) {
- (void)perl_perl_create_srv_config(&sdata->obj, CvSTASH(cv), cmd);
- set_module_config(cmd->server->module_config, xsmod, sdata);
+ (void)perl_perl_create_srv_config(&sdata->obj, CvSTASH(cv), cmd);
+ set_module_config(cmd->server->module_config, xsmod, sdata);
}
ENTER;SAVETMPS;
PUSHMARK(sp);
if(!has_empty_proto) {
- SV *cmd_obj = perl_bless_cmd_parms(cmd);
- XPUSHs(obj);
- XPUSHs(cmd_obj);
- if(cmd->cmd->args_how != NO_ARGS) {
- PUSHif(one);PUSHif(two);PUSHif(three);
- }
- if(SvPOK(cv) && (*(SvEND((SV*)cv)-1) == '*')) {
- SV *gp = mod_perl_gensym("Apache::CmdParms");
- sv_magic((SV*)SvRV(gp), cmd_obj, 'q', Nullch, 0);
- XPUSHs(gp);
- }
+ SV *cmd_obj = perl_bless_cmd_parms(cmd);
+ XPUSHs(obj);
+ XPUSHs(cmd_obj);
+ if(cmd->cmd->args_how != NO_ARGS) {
+ PUSHif(one);PUSHif(two);PUSHif(three);
+ }
+ if(SvPOK(cv) && (*(SvEND((SV*)cv)-1) == '*')) {
+ SV *gp = mod_perl_gensym("Apache::CmdParms");
+ sv_magic((SV*)SvRV(gp), cmd_obj, 'q', Nullch, 0);
+ XPUSHs(gp);
+ }
}
PUTBACK;
count = perl_call_sv((SV*)cv, G_EVAL | G_SCALAR);
SPAGAIN;
if(count == 1) {
- if(strEQ(POPp, DECLINE_CMD))
- retval = DECLINE_CMD;
- PUTBACK;
+ if(strEQ(POPp, DECLINE_CMD))
+ retval = DECLINE_CMD;
+ PUTBACK;
}
FREETMPS;LEAVE;
{
- dTHRCTX;
- if(SvTRUE(ERRSV))
- retval = SvPVX(ERRSV);
+ dTHRCTX;
+ if(SvTRUE(ERRSV))
+ retval = SvPVX(ERRSV);
}
return retval;
@@ -1059,7 +1059,7 @@
#ifdef PERL_SECTIONS
#if HAS_CONTEXT
-#define perl_set_config_vectors ap_set_config_vectors
+#define perl_set_config_vectors ap_set_config_vectors
#else
void *perl_set_config_vectors(cmd_parms *parms, void *config, module *mod)
{
@@ -1085,17 +1085,17 @@
char l[MAX_STRING_LEN];
if(PERL_RUNNING()) {
- sv_catpvf(sv, "package %s;", PERL_SECTIONS_PACKAGE);
- sv_catpvf(sv, "\n\n#line %d %s\n", cmd_linenum+1, cmd_filename);
+ sv_catpvf(sv, "package %s;", PERL_SECTIONS_PACKAGE);
+ sv_catpvf(sv, "\n\n#line %d %s\n", cmd_linenum+1, cmd_filename);
}
while (!(cfg_getline (l, MAX_STRING_LEN, cmd_infile))) {
- if(strncasecmp(l, "</Perl>", 7) == 0)
- break;
- if(PERL_RUNNING()) {
- sv_catpv(sv, l);
- sv_catpvn(sv, "\n", 1);
- }
+ if(strncasecmp(l, "</Perl>", 7) == 0)
+ break;
+ if(PERL_RUNNING()) {
+ sv_catpv(sv, l);
+ sv_catpvn(sv, "\n", 1);
+ }
}
return NULL;
@@ -1111,14 +1111,14 @@
while ((val = hv_iternextsv(hv, (char **) &key, &klen))) { \
HV *tab = Nullhv; \
AV *entries = Nullav; \
- if(SvMAGICAL(val)) mg_get(val); \
- if(SvROK(val) && (SvTYPE(SvRV(val)) == SVt_PVHV)) \
- tab = (HV *)SvRV(val); \
- else if(SvROK(val) && (SvTYPE(SvRV(val)) == SVt_PVAV)) \
- entries = (AV *)SvRV(val); \
- else \
- croak("value of `%s' is not a HASH or ARRAY reference!", key); \
- if(entries || tab) { \
+ if(SvMAGICAL(val)) mg_get(val); \
+ if(SvROK(val) && (SvTYPE(SvRV(val)) == SVt_PVHV)) \
+ tab = (HV *)SvRV(val); \
+ else if(SvROK(val) && (SvTYPE(SvRV(val)) == SVt_PVAV)) \
+ entries = (AV *)SvRV(val); \
+ else \
+ croak("value of `%s' is not a HASH or ARRAY reference!", key); \
+ if(entries || tab) { \
#define dSECiter_stop \
} \
@@ -1131,7 +1131,7 @@
SV *rv = *av_fetch(entries, i, FALSE); \
HV *nhv; \
if(!SvROK(rv) || (SvTYPE(SvRV(rv)) != SVt_PVHV)) \
- croak("not a HASH reference!"); \
+ croak("not a HASH reference!"); \
nhv = newHV(); \
hv_store(nhv, (char*)key, klen, SvREFCNT_inc(rv), FALSE); \
tab = nhv; \
@@ -1151,33 +1151,33 @@
SV *tmpval;
(void)hv_iterinit(hv);
while ((tmpval = hv_iternextsv(hv, &tmpkey, &tmpklen))) {
- char line[MAX_STRING_LEN];
- char *value = NULL;
- if (SvMAGICAL(tmpval)) mg_get(tmpval); /* tied hash FETCH */
- if(SvROK(tmpval)) {
- if(SvTYPE(SvRV(tmpval)) == SVt_PVAV) {
- perl_handle_command_av((AV*)SvRV(tmpval),
- 0, tmpkey, cmd, cfg);
- continue;
- }
- else if(SvTYPE(SvRV(tmpval)) == SVt_PVHV) {
- perl_handle_command_hv((HV*)SvRV(tmpval),
- tmpkey, cmd, cfg);
- continue;
- }
+ char line[MAX_STRING_LEN];
+ char *value = NULL;
+ if (SvMAGICAL(tmpval)) mg_get(tmpval); /* tied hash FETCH */
+ if(SvROK(tmpval)) {
+ if(SvTYPE(SvRV(tmpval)) == SVt_PVAV) {
+ perl_handle_command_av((AV*)SvRV(tmpval),
+ 0, tmpkey, cmd, cfg);
+ continue;
+ }
+ else if(SvTYPE(SvRV(tmpval)) == SVt_PVHV) {
+ perl_handle_command_hv((HV*)SvRV(tmpval),
+ tmpkey, cmd, cfg);
+ continue;
+ }
+ }
+ else
+ value = SvPV(tmpval,na);
+
+ sprintf(line, "%s %s", tmpkey, value);
+ errmsg = handle_command(cmd, cfg, line);
+ MP_TRACE_s(fprintf(stderr, "%s (%s) Limit=%s\n",
+ line,
+ (errmsg ? errmsg : "OK"),
+ (cmd->limited > 0 ? "yes" : "no") ));
+ if(errmsg)
+ log_printf(cmd->server, "<Perl>: %s", errmsg);
}
- else
- value = SvPV(tmpval,na);
-
- sprintf(line, "%s %s", tmpkey, value);
- errmsg = handle_command(cmd, cfg, line);
- MP_TRACE_s(fprintf(stderr, "%s (%s) Limit=%s\n",
- line,
- (errmsg ? errmsg : "OK"),
- (cmd->limited > 0 ? "yes" : "no") ));
- if(errmsg)
- log_printf(cmd->server, "<Perl>: %s", errmsg);
- }
/* Emulate the handling of end token for the section */
perl_set_config_vectors(cmd, cfg, &core_module);
}
@@ -1211,7 +1211,7 @@
dSECiter_start
if(entries) {
- SECiter_list(perl_virtualhost_section(cmd, dummy, tab));
+ SECiter_list(perl_virtualhost_section(cmd, dummy, tab));
}
arg = pstrdup(cmd->pool, getword_conf (cmd->pool, &key));
@@ -1223,7 +1223,7 @@
#endif
if (errmsg)
- return errmsg;
+ return errmsg;
s->next = main_server->next;
main_server->next = s;
@@ -1273,7 +1273,7 @@
void *new_url_conf;
if(entries) {
- SECiter_list(perl_urlsection(cmd, dummy, tab));
+ SECiter_list(perl_urlsection(cmd, dummy, tab));
}
new_url_conf = create_per_dir_config (cmd->pool);
@@ -1282,11 +1282,11 @@
cmd->override = OR_ALL|ACCESS_CONF;
if (cmd->info) { /* <LocationMatch> */
- r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED);
+ r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED);
}
else if (!strcmp(cmd->path, "~")) {
- cmd->path = getword_conf (cmd->pool, &key);
- r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED);
+ cmd->path = getword_conf (cmd->pool, &key);
+ r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED);
}
TRACE_SECTION(sname, cmd->path);
@@ -1294,13 +1294,13 @@
perl_section_hash_walk(cmd, new_url_conf, tab);
conf = (core_dir_config *)get_module_config(
- new_url_conf, &core_module);
+ new_url_conf, &core_module);
conf->d = pstrdup(cmd->pool, cmd->path);
test__is_match(conf);
conf->r = r;
add_per_url_conf (cmd->server, new_url_conf);
-
+
dSECiter_stop
cmd->path = old_path;
@@ -1325,7 +1325,7 @@
regex_t *r = NULL;
if(entries) {
- SECiter_list(perl_dirsection(cmd, dummy, tab));
+ SECiter_list(perl_dirsection(cmd, dummy, tab));
}
new_dir_conf = create_per_dir_config (cmd->pool);
@@ -1339,11 +1339,11 @@
cmd->override = OR_ALL|ACCESS_CONF;
if (cmd->info) { /* <DirectoryMatch> */
- r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED|USE_ICASE);
+ r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED|USE_ICASE);
}
else if (!strcmp(cmd->path, "~")) {
- cmd->path = getword_conf (cmd->pool, &key);
- r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED);
+ cmd->path = getword_conf (cmd->pool, &key);
+ r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED);
}
TRACE_SECTION(sname, cmd->path);
@@ -1387,7 +1387,7 @@
regex_t *r = NULL;
if(entries) {
- SECiter_list(perl_filesection(cmd, dummy, tab));
+ SECiter_list(perl_filesection(cmd, dummy, tab));
}
new_file_conf = create_per_dir_config (cmd->pool);
@@ -1395,19 +1395,19 @@
cmd->path = pstrdup(cmd->pool, getword_conf (cmd->pool, &key));
/* Only if not an .htaccess file */
if (!old_path)
- cmd->override = OR_ALL|ACCESS_CONF;
+ cmd->override = OR_ALL|ACCESS_CONF;
if (cmd->info) { /* <FilesMatch> */
r = ap_pregcomp(cmd->pool, cmd->path, REG_EXTENDED|USE_ICASE);
}
else if (!strcmp(cmd->path, "~")) {
- cmd->path = getword_conf (cmd->pool, &key);
- if (old_path && cmd->path[0] != '/' && cmd->path[0] != '^')
- cmd->path = pstrcat(cmd->pool, "^", old_path, cmd->path, NULL);
- r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED);
+ cmd->path = getword_conf (cmd->pool, &key);
+ if (old_path && cmd->path[0] != '/' && cmd->path[0] != '^')
+ cmd->path = pstrcat(cmd->pool, "^", old_path, cmd->path, NULL);
+ r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED);
}
else if (old_path && cmd->path[0] != '/')
- cmd->path = pstrcat(cmd->pool, old_path, cmd->path, NULL);
+ cmd->path = pstrcat(cmd->pool, old_path, cmd->path, NULL);
TRACE_SECTION(sname, cmd->path);
@@ -1415,7 +1415,7 @@
conf = (core_dir_config *)get_module_config(new_file_conf, &core_module);
if(!conf->opts)
- conf->opts = OPT_NONE;
+ conf->opts = OPT_NONE;
conf->d = pstrdup(cmd->pool, cmd->path);
test__is_match(conf);
conf->r = r;
@@ -1440,18 +1440,18 @@
/*void *ac = (void*)create_default_per_dir_config(cmd->pool);*/
if(nrec)
- cmd->cmd = nrec;
+ cmd->cmd = nrec;
if(hv_exists(hv,"METHODS", 7))
sv = hv_delete(hv, "METHODS", 7, G_SCALAR);
else
- return NULL;
+ return NULL;
methods = SvPOK(sv) ? SvPVX(sv) : "";
MP_TRACE_s(fprintf(stderr,
- "Found Limit section for `%s'\n",
- methods ? methods : "all methods"));
+ "Found Limit section for `%s'\n",
+ methods ? methods : "all methods"));
limit_section(cmd, dummy, methods);
perl_section_hash_walk(cmd, dummy, hv);
@@ -1477,13 +1477,13 @@
MP_TRACE_s(fprintf(stderr, "handle_command (%s): ", line));
if ((errmsg = handle_command(cmd, config, line))) {
- if ((sv = STRICT_PERL_SECTIONS_SV) && SvTRUE(sv)) {
- croak("<Perl>: %s", errmsg);
+ if ((sv = STRICT_PERL_SECTIONS_SV) && SvTRUE(sv)) {
+ croak("<Perl>: %s", errmsg);
+ }
+ else {
+ log_printf(cmd->server, "<Perl>: %s", errmsg);
+ }
}
- else {
- log_printf(cmd->server, "<Perl>: %s", errmsg);
- }
- }
MP_TRACE_s(fprintf(stderr, "%s\n", errmsg ? errmsg : "OK"));
}
@@ -1495,19 +1495,19 @@
void *old_info = cmd->info;
if (strstr(key, "Match")) {
- cmd->info = (void*)key;
+ cmd->info = (void*)key;
}
if(strnEQ(key, "Location", 8))
- perl_urlsection(cmd, dummy, hv);
+ perl_urlsection(cmd, dummy, hv);
else if(strnEQ(key, "Directory", 9))
- perl_dirsection(cmd, dummy, hv);
+ perl_dirsection(cmd, dummy, hv);
else if(strEQ(key, "VirtualHost"))
- perl_virtualhost_section(cmd, dummy, hv);
+ perl_virtualhost_section(cmd, dummy, hv);
else if(strnEQ(key, "Files", 5))
- perl_filesection(cmd, (core_dir_config *)dummy, hv);
+ perl_filesection(cmd, (core_dir_config *)dummy, hv);
else if(strEQ(key, "Limit"))
- perl_limit_section(cmd, config, hv);
+ perl_limit_section(cmd, config, hv);
cmd->info = old_info;
}
@@ -1522,45 +1522,45 @@
if(!n) n = alen+1;
for(i=0; i<=alen; i+=n) {
- SV *fsv;
- if(AvFILL(av) < 0)
- break;
-
- fsv = *av_fetch(av, 0, FALSE);
-
- if(SvROK(fsv)) {
- i -= n;
- perl_handle_command_av((AV*)SvRV(av_shift(av)), 0,
- key, cmd, config);
- }
- else {
- int do_quote = cmd->cmd->args_how != RAW_ARGS;
- SV *sv = newSV(0);
- sv_catpv(sv, key);
- if (do_quote) {
- sv_catpvn(sv, " \"", 2);
- }
- else {
- sv_catpvn(sv, " ", 1);
- }
- for(j=1; j<=n; j++) {
- sv_catsv(sv, av_shift(av));
- if (j != n) {
- if (do_quote) {
- sv_catpvn(sv, "\" \"", 3);
- }
- else {
- sv_catpvn(sv, " ", 1);
- }
- }
- }
- if (do_quote) {
- sv_catpvn(sv,"\"", 1);
- }
- perl_handle_command(cmd, config, SvPVX(sv));
- SvREFCNT_dec(sv);
+ SV *fsv;
+ if(AvFILL(av) < 0)
+ break;
+
+ fsv = *av_fetch(av, 0, FALSE);
+
+ if(SvROK(fsv)) {
+ i -= n;
+ perl_handle_command_av((AV*)SvRV(av_shift(av)), 0,
+ key, cmd, config);
+ }
+ else {
+ int do_quote = cmd->cmd->args_how != RAW_ARGS;
+ SV *sv = newSV(0);
+ sv_catpv(sv, key);
+ if (do_quote) {
+ sv_catpvn(sv, " \"", 2);
+ }
+ else {
+ sv_catpvn(sv, " ", 1);
+ }
+ for(j=1; j<=n; j++) {
+ sv_catsv(sv, av_shift(av));
+ if (j != n) {
+ if (do_quote) {
+ sv_catpvn(sv, "\" \"", 3);
+ }
+ else {
+ sv_catpvn(sv, " ", 1);
+ }
+ }
+ }
+ if (do_quote) {
+ sv_catpvn(sv,"\"", 1);
+ }
+ perl_handle_command(cmd, config, SvPVX(sv));
+ SvREFCNT_dec(sv);
+ }
}
- }
dowarn = oldwarn;
}
@@ -1568,31 +1568,31 @@
char *splain_args(enum cmd_how args_how) {
switch(args_how) {
case RAW_ARGS:
- return "RAW_ARGS";
+ return "RAW_ARGS";
case TAKE1:
- return "TAKE1";
+ return "TAKE1";
case TAKE2:
- return "TAKE2";
+ return "TAKE2";
case ITERATE:
- return "ITERATE";
+ return "ITERATE";
case ITERATE2:
- return "ITERATE2";
+ return "ITERATE2";
case FLAG:
- return "FLAG";
+ return "FLAG";
case NO_ARGS:
- return "NO_ARGS";
+ return "NO_ARGS";
case TAKE12:
- return "TAKE12";
+ return "TAKE12";
case TAKE3:
- return "TAKE3";
+ return "TAKE3";
case TAKE23:
- return "TAKE23";
+ return "TAKE23";
case TAKE123:
- return "TAKE123";
+ return "TAKE123";
case TAKE13:
- return "TAKE13";
+ return "TAKE13";
default:
- return "__UNKNOWN__";
+ return "__UNKNOWN__";
};
}
#endif
@@ -1606,7 +1606,7 @@
curstash = gv_stashpv(PERL_SECTIONS_PACKAGE, GV_ADDWARN);
gv = GvHV_init(name);
if(dotie && !perl_sections_self_boot)
- perl_tie_hash(GvHV(gv), "Tie::IxHash", Nullsv);
+ perl_tie_hash(GvHV(gv), "Tie::IxHash", Nullsv);
LEAVE;
}
@@ -1617,15 +1617,15 @@
if(!PERL_RUNNING()) perl_startup(parms->server, parms->pool);
if(!(symtab = gv_stashpv(PERL_SECTIONS_PACKAGE, FALSE)))
- return;
+ return;
nk = perl_eval_pv("scalar(keys %ApacheReadConfig::);",TRUE);
if(!SvIV(nk))
- return;
+ return;
MP_TRACE_s(fprintf(stderr,
- "bootstrapping <Perl> sections: arg=%s, keys=%d\n",
- arg, (int)SvIV(nk)));
+ "bootstrapping <Perl> sections: arg=%s, keys=%d\n",
+ arg, (int)SvIV(nk)));
perl_sections_boot_module = arg;
perl_sections_self_boot = 1;
@@ -1635,22 +1635,22 @@
/* make sure this module is re-loaded for the second config read */
if(PERL_RUNNING() == 1) {
- SV *file = Nullsv;
- if(arg) {
- if(strrchr(arg, '/') || strrchr(arg, '.'))
- file = newSVpv((char *)arg,0);
- else
- file = perl_module2file((char *)arg);
- }
-
- if(file && hv_exists_ent(GvHV(incgv), file, FALSE)) {
- MP_TRACE_s(fprintf(stderr,
- "mod_perl: delete $INC{'%s'} (klen=%d)\n",
- SvPVX(file), SvCUR(file)));
- (void)hv_delete_ent(GvHV(incgv), file, G_DISCARD, FALSE);
- }
- if(file)
- SvREFCNT_dec(file);
+ SV *file = Nullsv;
+ if(arg) {
+ if(strrchr(arg, '/') || strrchr(arg, '.'))
+ file = newSVpv((char *)arg,0);
+ else
+ file = perl_module2file((char *)arg);
+ }
+
+ if(file && hv_exists_ent(GvHV(incgv), file, FALSE)) {
+ MP_TRACE_s(fprintf(stderr,
+ "mod_perl: delete $INC{'%s'} (klen=%d)\n",
+ SvPVX(file), SvCUR(file)));
+ (void)hv_delete_ent(GvHV(incgv), file, G_DISCARD, FALSE);
+ }
+ if(file)
+ SvREFCNT_dec(file);
}
}
@@ -1662,19 +1662,19 @@
(void)hv_iterinit(symtab);
while ((val = hv_iternextsv(symtab, &key, &klen))) {
- SV *sv;
- HV *hv;
- AV *av;
- dTHR;
-
- if((SvTYPE(val) != SVt_PVGV) || GvIMPORTED((GV*)val))
- continue;
- if((sv = GvSV((GV*)val)))
- sv_setsv(GvSV((GV*)val), &sv_undef);
- if((hv = GvHV((GV*)val)))
- hv_clear(hv);
- if((av = GvAV((GV*)val)))
- av_clear(av);
+ SV *sv;
+ HV *hv;
+ AV *av;
+ dTHR;
+
+ if((SvTYPE(val) != SVt_PVGV) || GvIMPORTED((GV*)val))
+ continue;
+ if((sv = GvSV((GV*)val)))
+ sv_setsv(GvSV((GV*)val), &sv_undef);
+ if((hv = GvHV((GV*)val)))
+ hv_clear(hv);
+ if((av = GvAV((GV*)val)))
+ av_clear(av);
}
}
@@ -1693,19 +1693,19 @@
require_Apache(parms->server);
if(PERL_RUNNING()) {
- code = newSV(0);
- sv_setpv(code, "");
- if(arg)
- errmsg = perl_srm_command_loop(parms, code);
+ code = newSV(0);
+ sv_setpv(code, "");
+ if(arg)
+ errmsg = perl_srm_command_loop(parms, code);
}
else {
- MP_TRACE_s(fprintf(stderr,
- "perl_section: Perl not running, returning...\n"));
- return NULL;
+ MP_TRACE_s(fprintf(stderr,
+ "perl_section: Perl not running, returning...\n"));
+ return NULL;
}
if((perl_require_module("Tie::IxHash", NULL) == OK))
- dotie = TRUE;
+ dotie = TRUE;
perl_section_hash_init("Location", dotie);
perl_section_hash_init("LocationMatch", dotie);
@@ -1724,92 +1724,92 @@
LEAVE_SAFE;
{
- dTHR;
- dTHRCTX;
- if(SvTRUE(ERRSV)) {
- MP_TRACE_s(fprintf(stderr,
- "Apache::ReadConfig: %s\n", SvPV(ERRSV,na)));
- return SvPV(ERRSV,na);
+ dTHR;
+ dTHRCTX;
+ if(SvTRUE(ERRSV)) {
+ MP_TRACE_s(fprintf(stderr,
+ "Apache::ReadConfig: %s\n", SvPV(ERRSV,na)));
+ return SvPV(ERRSV,na);
+ }
}
- }
symtab = (HV*)gv_stashpv(PERL_SECTIONS_PACKAGE, FALSE);
(void)hv_iterinit(symtab);
while ((val = hv_iternextsv(symtab, &key, &klen))) {
- SV *sv;
- HV *hv;
- AV *av;
-
- if(SvTYPE(val) != SVt_PVGV)
- continue;
-
- if((sv = GvSV((GV*)val))) {
- if(SvTRUE(sv)) {
- if(STRING_MEAL(key)) {
- perl_eat_config_string(parms, config, sv);
- }
- else {
- STRLEN junk;
- MP_TRACE_s(fprintf(stderr, "SVt_PV: $%s = `%s'\n",
- key, SvPV(sv,junk)));
- sprintf(line, "%s %s", key, SvPV(sv,junk));
- perl_handle_command(parms, config, line);
- }
- }
+ SV *sv;
+ HV *hv;
+ AV *av;
+
+ if(SvTYPE(val) != SVt_PVGV)
+ continue;
+
+ if((sv = GvSV((GV*)val))) {
+ if(SvTRUE(sv)) {
+ if(STRING_MEAL(key)) {
+ perl_eat_config_string(parms, config, sv);
+ }
+ else {
+ STRLEN junk;
+ MP_TRACE_s(fprintf(stderr, "SVt_PV: $%s = `%s'\n",
+ key, SvPV(sv,junk)));
+ sprintf(line, "%s %s", key, SvPV(sv,junk));
+ perl_handle_command(parms, config, line);
+ }
+ }
+ }
+
+ if((hv = GvHV((GV*)val))) {
+ perl_handle_command_hv(hv, key, parms, config);
+ }
+ else if((av = GvAV((GV*)val))) {
+ module *tmod = top_module;
+ const command_rec *c;
+ I32 shift, alen = AvFILL(av);
+
+ if(STRING_MEAL(key)) {
+ SV *tmpsv;
+ while((tmpsv = av_shift(av)) != &sv_undef)
+ perl_eat_config_string(parms, config, tmpsv);
+ continue;
+ }
+
+ if(!(c = find_command_in_modules((const char *)key, &tmod))) {
+ fprintf(stderr, "command_rec for directive `%s' not found!\n", key);
+ continue;
+ }
+
+ MP_TRACE_s(fprintf(stderr,
+ "`@%s' directive is %s, (%d elements)\n",
+ key, splain_args(c->args_how), (int)AvFILL(av)+1));
+
+ switch (c->args_how) {
+
+ case TAKE23:
+ case TAKE2:
+ shift = 2;
+ break;
+
+ case TAKE3:
+ shift = 3;
+ break;
+
+ default:
+ MP_TRACE_s(fprintf(stderr,
+ "default: iterating over @%s\n", key));
+ shift = 1;
+ break;
+ }
+ if(shift > alen+1) shift = 1; /* elements are refs */
+ perl_handle_command_av(av, shift, key, parms, config);
+ }
}
-
- if((hv = GvHV((GV*)val))) {
- perl_handle_command_hv(hv, key, parms, config);
- }
- else if((av = GvAV((GV*)val))) {
- module *tmod = top_module;
- const command_rec *c;
- I32 shift, alen = AvFILL(av);
-
- if(STRING_MEAL(key)) {
- SV *tmpsv;
- while((tmpsv = av_shift(av)) != &sv_undef)
- perl_eat_config_string(parms, config, tmpsv);
- continue;
- }
-
- if(!(c = find_command_in_modules((const char *)key, &tmod))) {
- fprintf(stderr, "command_rec for directive `%s' not found!\n", key);
- continue;
- }
-
- MP_TRACE_s(fprintf(stderr,
- "`@%s' directive is %s, (%d elements)\n",
- key, splain_args(c->args_how), (int)AvFILL(av)+1));
-
- switch (c->args_how) {
-
- case TAKE23:
- case TAKE2:
- shift = 2;
- break;
-
- case TAKE3:
- shift = 3;
- break;
-
- default:
- MP_TRACE_s(fprintf(stderr,
- "default: iterating over @%s\n", key));
- shift = 1;
- break;
- }
- if(shift > alen+1) shift = 1; /* elements are refs */
- perl_handle_command_av(av, shift, key, parms, config);
- }
- }
SvREFCNT_dec(code);
{
- SV *usv = perl_get_sv("Apache::Server::SaveConfig", FALSE);
- if(usv && SvTRUE(usv))
- ; /* keep it around */
- else
- clear_symtab(symtab);
+ SV *usv = perl_get_sv("Apache::Server::SaveConfig", FALSE);
+ if(usv && SvTRUE(usv))
+ ; /* keep it around */
+ else
+ clear_symtab(symtab);
}
return NULL;
}
@@ -1823,14 +1823,14 @@
ap_cpystrn(name, string, sizeof(name));
if (!(s = (char *)strstr(name, "Api"))) {
- return -1;
+ return -1;
}
*s = '\0';
if (strEQ(name, "Uri")) {
- /* s/^Uri$/URI/ */
- name[1] = toUPPER(name[1]);
- name[2] = toUPPER(name[2]);
+ /* s/^Uri$/URI/ */
+ name[1] = toUPPER(name[1]);
+ name[2] = toUPPER(name[2]);
}
/* XXX: assumes .xs is linked static */
@@ -1840,154 +1840,154 @@
int perl_hook(char *name)
{
switch (*name) {
- case 'A':
- if (strEQ(name, "Authen"))
+ case 'A':
+ if (strEQ(name, "Authen"))
#ifdef PERL_AUTHEN
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- if (strEQ(name, "Authz"))
+ if (strEQ(name, "Authz"))
#ifdef PERL_AUTHZ
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- if (strEQ(name, "Access"))
+ if (strEQ(name, "Access"))
#ifdef PERL_ACCESS
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- break;
- case 'C':
- if (strEQ(name, "ChildInit"))
+ break;
+ case 'C':
+ if (strEQ(name, "ChildInit"))
#ifdef PERL_CHILD_INIT
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- if (strEQ(name, "ChildExit"))
+ if (strEQ(name, "ChildExit"))
#ifdef PERL_CHILD_EXIT
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- if (strEQ(name, "Cleanup"))
+ if (strEQ(name, "Cleanup"))
#ifdef PERL_CLEANUP
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- break;
- case 'D':
- if (strEQ(name, "Dispatch"))
+ break;
+ case 'D':
+ if (strEQ(name, "Dispatch"))
#ifdef PERL_DISPATCH
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- if (strEQ(name, "DirectiveHandlers"))
+ if (strEQ(name, "DirectiveHandlers"))
#ifdef PERL_DIRECTIVE_HANDLERS
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- break;
- case 'F':
- if (strEQ(name, "Fixup"))
+ break;
+ case 'F':
+ if (strEQ(name, "Fixup"))
#ifdef PERL_FIXUP
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- break;
+ break;
#if MODULE_MAGIC_NUMBER >= 19970103
- case 'H':
- if (strEQ(name, "HeaderParser"))
+ case 'H':
+ if (strEQ(name, "HeaderParser"))
#ifdef PERL_HEADER_PARSER
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- break;
+ break;
#endif
#if MODULE_MAGIC_NUMBER >= 19970103
- case 'I':
- if (strEQ(name, "Init"))
+ case 'I':
+ if (strEQ(name, "Init"))
#ifdef PERL_INIT
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- break;
+ break;
#endif
- case 'L':
- if (strEQ(name, "Log"))
+ case 'L':
+ if (strEQ(name, "Log"))
#ifdef PERL_LOG
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- break;
- case 'M':
- if (strEQ(name, "MethodHandlers"))
+ break;
+ case 'M':
+ if (strEQ(name, "MethodHandlers"))
#ifdef PERL_METHOD_HANDLERS
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- break;
- case 'P':
- if (strEQ(name, "PostReadRequest"))
+ break;
+ case 'P':
+ if (strEQ(name, "PostReadRequest"))
#ifdef PERL_POST_READ_REQUEST
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- break;
- case 'R':
- if (strEQ(name, "Restart"))
+ break;
+ case 'R':
+ if (strEQ(name, "Restart"))
#ifdef PERL_RESTART
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- case 'S':
- if (strEQ(name, "SSI"))
+ case 'S':
+ if (strEQ(name, "SSI"))
#ifdef PERL_SSI
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- if (strEQ(name, "StackedHandlers"))
+ if (strEQ(name, "StackedHandlers"))
#ifdef PERL_STACKED_HANDLERS
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- if (strEQ(name, "Sections"))
+ if (strEQ(name, "Sections"))
#ifdef PERL_SECTIONS
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- break;
- case 'T':
- if (strEQ(name, "Trans"))
+ break;
+ case 'T':
+ if (strEQ(name, "Trans"))
#ifdef PERL_TRANS
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
if (strEQ(name, "Type"))
#ifdef PERL_TYPE
- return 1;
+ return 1;
#else
- return 0;
+ return 0;
#endif
- break;
+ break;
}
return perl_hook_api(name);