47module AP_MODULE_DECLARE_DATA win32_module;
69 new->script_interpreter_source = (add->script_interpreter_source
71 ? add->script_interpreter_source
91 "\" must be \"registry\", \"registry-strict\" or "
107 const char *
ch = *
str;
115 if (*(
ch++) & 0x80) {
128 *(
ch2++) = 0xC0 | ((*
ch >> 6) & 0x03);
129 *(
ch2++) = 0x80 | (*(
ch++) & 0x3f);
241 const char *
ch = interp;
254 if (((*
ch ==
'$') || (*
ch ==
'%')) && (*(
ch + 1) ==
'*')) {
270 if (((*
ch ==
'$') || (*
ch ==
'%')) && (*(
ch + 1) ==
'1')) {
287 if ((*
ch ==
'\"') && ((*(
ch + 1) ==
'$')
288 || (*(
ch + 1) ==
'%')) && (*(
ch + 2) ==
'1')
289 && (*(
ch + 3) ==
'\"')) {
292 if (*(
ch + 1) ==
'%') {
313 for (sl = 0; *
ch ==
'\\'; ++sl) {
326 *
d++ = *
ch++;
continue;
379 const char *
args =
"";
412 && (
d->script_interpreter_source
414 ||
d->script_interpreter_source
417 int strict = (
d->script_interpreter_source
426 strict ?
APLOGNO(03180)
"No ExecCGI verb found for files of type '%s'."
427 :
APLOGNO(03181)
"No ExecCGI or Open verb found for files of type '%s'.",
443 "Failed to open cgi file %s for testing", *
cmd);
448 "Failed to read cgi file %s for testing", *
cmd);
497 if (
hdr->e_lfarlc < 0x40) {
509 "%s is not executable; ensure interpreted scripts have "
510 "\"#!\" or \"'!\" first line", *
cmd);
529 ||
strcmp(elts[
i].
key,
"GATEWAY_INTERFACE") == 0
533 ||
strcmp(elts[
i].
key,
"SERVER_PROTOCOL") == 0)) {
548 "Where to find interpreter to run Win32 scripts "
549 "(Registry or script shebang line)"),
Symbol export macros and hook functions.
APR-style Win32 Registry Manipulation.
APR-UTIL Buckets/Bucket Brigades.
APR general purpose library routines.
APR Portability Routines.
apr_size_t const unsigned char unsigned int unsigned int d
#define AP_INIT_TAKE1(directive, func, mconfig, where, help)
#define ap_get_module_config(v, m)
#define AP_DECLARE_MODULE(foo)
#define APR_REGISTER_OPTIONAL_FN(name)
#define STANDARD20_MODULE_STUFF
char * ap_escape_shell_cmd(apr_pool_t *p, const char *s)
#define ap_strchr_c(s, c)
char * ap_getword_nulls(apr_pool_t *p, const char **line, char stop)
int ap_unescape_url(char *url)
int strcasecmp(const char *a, const char *b)
#define apr_pcalloc(p, size)
const void apr_size_t bytes
const char const char *const * args
static void register_hooks(apr_pool_t *p)
CGI Script Execution Extension Module for Apache.
mod_core private header file
A structure that represents the current request.
apr_table_t * subprocess_env
struct ap_conf_vector_t * per_dir_config