You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by Dean Gaudet <dg...@hyperreal.org> on 1997/09/16 02:18:07 UTC
cvs commit: apachen/src/main http_config.c http_config.h
dgaudet 97/09/15 17:18:06
Modified: src INDENT
src/main http_config.c http_config.h
Log:
indent
Revision Changes Path
1.18 +6 -8 apachen/src/INDENT
Index: INDENT
===================================================================
RCS file: /export/home/cvs/apachen/src/INDENT,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- INDENT 1997/09/15 23:58:10 1.17
+++ INDENT 1997/09/16 00:17:55 1.18
@@ -8,16 +8,16 @@
alloc.h DONE by Dean
buff.c DONE by Dean
buff.h DONE by Dean
- conf.h
+ conf.h RESERVED by Dean
dummy.c
explain.c
explain.h
fnmatch.c
fnmatch.h
http_bprintf.c
- http_conf_globals.h
- http_config.c RESERVED by Dean
- http_config.h RESERVED by Dean
+ http_conf_globals.h RESERVED by Dean
+ http_config.c DONE by Dean
+ http_config.h DONE by Dean
http_core.c RESERVED by Randy
http_core.h RESERVED by Randy
http_log.c RESERVED by Randy
@@ -28,15 +28,13 @@
http_protocol.h DONE by Roy
http_request.c DONE by Roy
http_request.h DONE by Roy
- httpd.h
+ httpd.h RESERVED by Dean
md5.h
md5c.c
multithread.h
- os-inline.c
- os.h
rfc1413.c
rfc1413.h
- scoreboard.h
+ scoreboard.h RESERVED by Dean
util.c DONE by Randy
util_date.c DONE by Randy
util_date.h DONE by Randy
1.80 +540 -503 apachen/src/main/http_config.c
Index: http_config.c
===================================================================
RCS file: /export/home/cvs/apachen/src/main/http_config.c,v
retrieving revision 1.79
retrieving revision 1.80
diff -u -r1.79 -r1.80
--- http_config.c 1997/09/12 22:55:15 1.79
+++ http_config.c 1997/09/16 00:17:59 1.80
@@ -93,10 +93,10 @@
*/
static int dynamic_modules = 0;
module *top_module = NULL;
-
-typedef int (*handler_func)(request_rec *);
-typedef void *(*dir_maker_func)(pool *, char *);
-typedef void *(*merger_func)(pool *, void *, void *);
+
+typedef int (*handler_func) (request_rec *);
+typedef void *(*dir_maker_func) (pool *, char *);
+typedef void *(*merger_func) (pool *, void *, void *);
/* Dealing with config vectors. These are associated with per-directory,
* per-server, and per-request configuration, and have a void* pointer for
@@ -109,86 +109,87 @@
* overridden).
*/
-API_EXPORT(void *) get_module_config (void *conf_vector, module *m)
+API_EXPORT(void *) get_module_config(void *conf_vector, module *m)
{
- void **confv = (void**)conf_vector;
- return confv[m->module_index];
+ void **confv = (void **) conf_vector;
+ return confv[m->module_index];
}
-API_EXPORT(void) set_module_config (void *conf_vector, module *m, void *val)
+API_EXPORT(void) set_module_config(void *conf_vector, module *m, void *val)
{
- void **confv = (void**)conf_vector;
- confv[m->module_index] = val;
+ void **confv = (void **) conf_vector;
+ confv[m->module_index] = val;
}
void *
-create_empty_config (pool *p)
+ create_empty_config(pool *p)
{
- void **conf_vector = (void **)pcalloc(p, sizeof(void*) *
- (total_modules+DYNAMIC_MODULE_LIMIT));
- return (void *)conf_vector;
+ void **conf_vector = (void **) pcalloc(p, sizeof(void *) *
+ (total_modules + DYNAMIC_MODULE_LIMIT));
+ return (void *) conf_vector;
}
void *
-create_default_per_dir_config (pool *p)
+ create_default_per_dir_config(pool *p)
{
- void **conf_vector = (void **)pcalloc(p, sizeof(void*) * (total_modules+DYNAMIC_MODULE_LIMIT));
- module *modp;
+ void **conf_vector = (void **) pcalloc(p, sizeof(void *) * (total_modules + DYNAMIC_MODULE_LIMIT));
+ module *modp;
- for (modp = top_module; modp; modp = modp->next) {
- dir_maker_func df = modp->create_dir_config;
+ for (modp = top_module; modp; modp = modp->next) {
+ dir_maker_func df = modp->create_dir_config;
- if (df) conf_vector[modp->module_index] = (*df)(p, NULL);
- }
+ if (df)
+ conf_vector[modp->module_index] = (*df) (p, NULL);
+ }
- return (void*)conf_vector;
+ return (void *) conf_vector;
}
void *
-merge_per_dir_configs (pool *p, void *base, void *new)
+ merge_per_dir_configs(pool *p, void *base, void *new)
{
- void **conf_vector = (void **)palloc(p, sizeof(void*) * total_modules);
- void **base_vector = (void **) base;
- void **new_vector = (void **) new;
- module *modp;
-
- for (modp = top_module; modp; modp = modp->next) {
- merger_func df = modp->merge_dir_config;
- int i = modp->module_index;
-
- if (df && new_vector[i])
- conf_vector[i] = (*df)(p, base_vector[i], new_vector[i]);
- else
- conf_vector[i] = new_vector[i]? new_vector[i] : base_vector[i];
- }
+ void **conf_vector = (void **) palloc(p, sizeof(void *) * total_modules);
+ void **base_vector = (void **) base;
+ void **new_vector = (void **) new;
+ module *modp;
- return (void*)conf_vector;
+ for (modp = top_module; modp; modp = modp->next) {
+ merger_func df = modp->merge_dir_config;
+ int i = modp->module_index;
+
+ if (df && new_vector[i])
+ conf_vector[i] = (*df) (p, base_vector[i], new_vector[i]);
+ else
+ conf_vector[i] = new_vector[i] ? new_vector[i] : base_vector[i];
+ }
+
+ return (void *) conf_vector;
}
void *
-create_server_config (pool *p, server_rec *s)
+ create_server_config(pool *p, server_rec *s)
{
- void **conf_vector = (void **)pcalloc(p, sizeof(void*) * (total_modules+DYNAMIC_MODULE_LIMIT));
- module *modp;
+ void **conf_vector = (void **) pcalloc(p, sizeof(void *) * (total_modules + DYNAMIC_MODULE_LIMIT));
+ module *modp;
- for (modp = top_module; modp; modp = modp->next) {
- if (modp->create_server_config)
- conf_vector[modp->module_index]=(*modp->create_server_config)(p,s);
- }
+ for (modp = top_module; modp; modp = modp->next) {
+ if (modp->create_server_config)
+ conf_vector[modp->module_index] = (*modp->create_server_config) (p, s);
+ }
- return (void*)conf_vector;
+ return (void *) conf_vector;
}
-void merge_server_configs (pool *p, void *base, void *virt)
+void merge_server_configs(pool *p, void *base, void *virt)
{
/* Can reuse the 'virt' vector for the spine of it, since we don't
* have to deal with the moral equivalent of .htaccess files here...
*/
- void **base_vector = (void **)base;
- void **virt_vector = (void **)virt;
+ void **base_vector = (void **) base;
+ void **virt_vector = (void **) virt;
module *modp;
-
+
for (modp = top_module; modp; modp = modp->next) {
merger_func df = modp->merge_server_config;
int i = modp->module_index;
@@ -196,30 +197,33 @@
if (!virt_vector[i])
virt_vector[i] = base_vector[i];
else if (df)
- virt_vector[i] = (*df)(p, base_vector[i], virt_vector[i]);
+ virt_vector[i] = (*df) (p, base_vector[i], virt_vector[i]);
}
}
-
-void *create_connection_config (pool *p) {
- return create_empty_config (p);
+
+void *create_connection_config(pool *p)
+{
+ return create_empty_config(p);
}
-void *create_request_config (pool *p) {
- return create_empty_config (p);
+void *create_request_config(pool *p)
+{
+ return create_empty_config(p);
}
-void *create_per_dir_config (pool *p) {
- return create_empty_config (p);
+void *create_per_dir_config(pool *p)
+{
+ return create_empty_config(p);
}
#ifdef EXPLAIN
-struct
- {
+struct {
int offset;
char *method;
- } aMethods[]=
- {
+} aMethods[] =
+
+{
#define m(meth) { XtOffsetOf(module,meth),#meth }
m(translate_handler),
m(check_user_id),
@@ -227,21 +231,21 @@
m(type_checker),
m(fixer_upper),
m(logger),
- { -1,"?" },
+ { -1, "?" },
#undef m
- };
+};
-char *ShowMethod(module *modp,int offset)
- {
+char *ShowMethod(module *modp, int offset)
+{
int n;
static char buf[200];
- for(n=0 ; aMethods[n].offset >= 0 ; ++n)
- if(aMethods[n].offset == offset)
+ for (n = 0; aMethods[n].offset >= 0; ++n)
+ if (aMethods[n].offset == offset)
break;
- ap_snprintf(buf, sizeof(buf), "%s:%s",modp->name,aMethods[n].method);
+ ap_snprintf(buf, sizeof(buf), "%s:%s", modp->name, aMethods[n].method);
return buf;
- }
+}
#else
#define ShowMethod(modp,offset)
#endif
@@ -259,16 +263,17 @@
* everything. If you think about it, this is really just like a sparse array
* implementation to avoid scanning the zero entries.
*/
-static const int method_offsets[] = {
- XtOffsetOf (module, translate_handler),
- XtOffsetOf (module, check_user_id),
- XtOffsetOf (module, auth_checker),
- XtOffsetOf (module, access_checker),
- XtOffsetOf (module, type_checker),
- XtOffsetOf (module, fixer_upper),
- XtOffsetOf (module, logger),
- XtOffsetOf (module, header_parser),
- XtOffsetOf (module, post_read_request)
+static const int method_offsets[] =
+{
+ XtOffsetOf(module, translate_handler),
+ XtOffsetOf(module, check_user_id),
+ XtOffsetOf(module, auth_checker),
+ XtOffsetOf(module, access_checker),
+ XtOffsetOf(module, type_checker),
+ XtOffsetOf(module, fixer_upper),
+ XtOffsetOf(module, logger),
+ XtOffsetOf(module, header_parser),
+ XtOffsetOf(module, post_read_request)
};
#define NMETHODS (sizeof (method_offsets)/sizeof (method_offsets[0]))
@@ -296,8 +301,7 @@
* add_module.
* XXX: this breaks if modules dink with their methods pointers
*/
-static void
-build_method_shortcuts (void)
+static void build_method_shortcuts(void)
{
module *modp;
int how_many_ptrs;
@@ -307,27 +311,27 @@
if (method_ptrs) {
/* free up any previous set of method_ptrs */
- free (method_ptrs);
+ free(method_ptrs);
}
/* first we count how many functions we have */
how_many_ptrs = 0;
for (modp = top_module; modp; modp = modp->next) {
- for (i = 0; i<NMETHODS; ++i) {
- if (*(handler_func *)(method_offsets[i] + (char *)modp)) {
+ for (i = 0; i < NMETHODS; ++i) {
+ if (*(handler_func *) (method_offsets[i] + (char *) modp)) {
++how_many_ptrs;
}
}
}
- method_ptrs = malloc ((how_many_ptrs+NMETHODS)*sizeof (handler_func));
+ method_ptrs = malloc((how_many_ptrs + NMETHODS) * sizeof(handler_func));
next_ptr = 0;
- for (i = 0; i<NMETHODS; ++i) {
+ for (i = 0; i < NMETHODS; ++i) {
/* XXX: This is an itsy bit presumptuous about the alignment
* constraints on offsets_into_method_ptrs. I can't remember if
* ANSI says this has to be true... -djg */
- ((int *)&offsets_into_method_ptrs)[i] = next_ptr;
+ ((int *) &offsets_into_method_ptrs)[i] = next_ptr;
for (modp = top_module; modp; modp = modp->next) {
- fp = *(handler_func *)(method_offsets[i] + (char *)modp);
+ fp = *(handler_func *) (method_offsets[i] + (char *) modp);
if (fp) {
method_ptrs[next_ptr++] = fp;
}
@@ -337,53 +341,59 @@
}
-static int
-run_method (request_rec *r, int offset, int run_all)
+static int run_method(request_rec *r, int offset, int run_all)
{
int i;
- for (i = offset; method_ptrs[i]; ++i ) {
+ for (i = offset; method_ptrs[i]; ++i) {
handler_func mod_handler = method_ptrs[i];
if (mod_handler) {
- int result;
+ int result;
- result = (*mod_handler)(r);
+ result = (*mod_handler) (r);
- if (result != DECLINED && (!run_all || result != OK))
- return result;
- }
- }
+ if (result != DECLINED && (!run_all || result != OK))
+ return result;
+ }
+ }
- return run_all ? OK : DECLINED;
+ return run_all ? OK : DECLINED;
}
-int translate_name(request_rec *r) {
- return run_method (r, offsets_into_method_ptrs.translate_handler, 0);
+int translate_name(request_rec *r)
+{
+ return run_method(r, offsets_into_method_ptrs.translate_handler, 0);
}
-int check_access(request_rec *r) {
- return run_method (r, offsets_into_method_ptrs.access_checker, 1);
+int check_access(request_rec *r)
+{
+ return run_method(r, offsets_into_method_ptrs.access_checker, 1);
}
-int find_types (request_rec *r) {
- return run_method (r, offsets_into_method_ptrs.type_checker, 0);
+int find_types(request_rec *r)
+{
+ return run_method(r, offsets_into_method_ptrs.type_checker, 0);
}
-int run_fixups (request_rec *r) {
- return run_method (r, offsets_into_method_ptrs.fixer_upper, 1);
+int run_fixups(request_rec *r)
+{
+ return run_method(r, offsets_into_method_ptrs.fixer_upper, 1);
}
-int log_transaction (request_rec *r) {
- return run_method (r, offsets_into_method_ptrs.logger, 1);
+int log_transaction(request_rec *r)
+{
+ return run_method(r, offsets_into_method_ptrs.logger, 1);
}
-int header_parse (request_rec *r) {
- return run_method (r, offsets_into_method_ptrs.header_parser, 1);
+int header_parse(request_rec *r)
+{
+ return run_method(r, offsets_into_method_ptrs.header_parser, 1);
}
-int run_post_read_request (request_rec *r) {
- return run_method (r, offsets_into_method_ptrs.post_read_request, 1);
+int run_post_read_request(request_rec *r)
+{
+ return run_method(r, offsets_into_method_ptrs.post_read_request, 1);
}
/* Auth stuff --- anything that defines one of these will presumably
@@ -391,71 +401,76 @@
* separate from check_access to make catching some config errors easier.
*/
-int check_user_id (request_rec *r) {
- return run_method (r, offsets_into_method_ptrs.check_user_id, 0);
+int check_user_id(request_rec *r)
+{
+ return run_method(r, offsets_into_method_ptrs.check_user_id, 0);
}
-int check_auth (request_rec *r) {
- return run_method (r, offsets_into_method_ptrs.auth_checker, 0);
+int check_auth(request_rec *r)
+{
+ return run_method(r, offsets_into_method_ptrs.auth_checker, 0);
}
-int invoke_handler (request_rec *r)
-{
- module *modp;
- handler_rec *handp;
- char *content_type = r->content_type ? r->content_type : default_type (r);
- char *handler, *p;
-
- if ((p = strchr(content_type, ';')) != NULL) { /* MIME type arguments */
- while (p > content_type && p[-1] == ' ') --p; /* strip trailing spaces */
- content_type = pstrndup(r->pool, content_type, p - content_type);
- }
- handler = r->handler ? r->handler : content_type;
-
- /* Pass one --- direct matches */
-
- for (modp = top_module; modp; modp = modp->next)
- {
- if (!modp->handlers) continue;
-
- for (handp = modp->handlers; handp->content_type; ++handp) {
- if (!strcasecmp (handler, handp->content_type)) {
- int result = (*handp->handler)(r);
-
- if (result != DECLINED) return result;
- }
- }
- }
-
- /* Pass two --- wildcard matches */
-
- for (modp = top_module; modp; modp = modp->next)
- {
- if (!modp->handlers) continue;
-
- for (handp = modp->handlers; handp->content_type; ++handp) {
- char *starp = strchr (handp->content_type, '*');
- int len;
-
- if (!starp) continue;
-
- len = starp - handp->content_type;
-
- if (!len || !strncasecmp (handler, handp->content_type, len))
- {
- int result = (*handp->handler)(r);
-
- if (result != DECLINED) return result;
- }
- }
- }
-
- return NOT_IMPLEMENTED;
+int invoke_handler(request_rec *r)
+{
+ module *modp;
+ handler_rec *handp;
+ char *content_type = r->content_type ? r->content_type : default_type(r);
+ char *handler, *p;
+
+ if ((p = strchr(content_type, ';')) != NULL) { /* MIME type arguments */
+ while (p > content_type && p[-1] == ' ')
+ --p; /* strip trailing spaces */
+ content_type = pstrndup(r->pool, content_type, p - content_type);
+ }
+ handler = r->handler ? r->handler : content_type;
+
+ /* Pass one --- direct matches */
+
+ for (modp = top_module; modp; modp = modp->next) {
+ if (!modp->handlers)
+ continue;
+
+ for (handp = modp->handlers; handp->content_type; ++handp) {
+ if (!strcasecmp(handler, handp->content_type)) {
+ int result = (*handp->handler) (r);
+
+ if (result != DECLINED)
+ return result;
+ }
+ }
+ }
+
+ /* Pass two --- wildcard matches */
+
+ for (modp = top_module; modp; modp = modp->next) {
+ if (!modp->handlers)
+ continue;
+
+ for (handp = modp->handlers; handp->content_type; ++handp) {
+ char *starp = strchr(handp->content_type, '*');
+ int len;
+
+ if (!starp)
+ continue;
+
+ len = starp - handp->content_type;
+
+ if (!len || !strncasecmp(handler, handp->content_type, len)) {
+ int result = (*handp->handler) (r);
+
+ if (result != DECLINED)
+ return result;
+ }
+ }
+ }
+
+ return NOT_IMPLEMENTED;
}
/* One-time setup for precompiled modules --- NOT to be done on restart */
-API_EXPORT(void) add_module (module *m)
+API_EXPORT(void) add_module(module *m)
{
/* This could be called from an AddModule httpd.conf command,
* after the file has been linked and the module structure within it
@@ -469,13 +484,13 @@
if (m->version != MODULE_MAGIC_NUMBER) {
fprintf(stderr, "httpd: module \"%s\" is not compatible with this "
- "version of Apache.\n", m->name);
+ "version of Apache.\n", m->name);
fprintf(stderr, "Please contact the author for the correct version.\n");
exit(1);
}
if (m->next == NULL) {
- m->next = top_module;
+ m->next = top_module;
top_module = m;
}
if (m->module_index == -1) {
@@ -496,55 +511,57 @@
* components (Unix and DOS), and remove them.
*/
- if (strrchr(m->name, '/')) m->name = 1 + strrchr(m->name, '/');
- if (strrchr(m->name, '\\')) m->name = 1 + strrchr(m->name, '\\');
+ if (strrchr(m->name, '/'))
+ m->name = 1 + strrchr(m->name, '/');
+ if (strrchr(m->name, '\\'))
+ m->name = 1 + strrchr(m->name, '\\');
- /** XXX: this will be slow if there's lots of add_modules */
- build_method_shortcuts ();
+/** XXX: this will be slow if there's lots of add_modules */
+ build_method_shortcuts();
}
-void setup_prelinked_modules ()
+void setup_prelinked_modules()
{
module **m;
/* First, set all module indices, and init total_modules. */
total_modules = 0;
for (m = preloaded_modules; *m; ++m, ++total_modules) {
- (*m)->module_index = total_modules;
+ (*m)->module_index = total_modules;
}
for (m = prelinked_modules; *m; ++m) {
- add_module (*m);
+ add_module(*m);
}
}
-API_EXPORT(const char *) find_module_name (module *m)
+API_EXPORT(const char *) find_module_name(module *m)
{
return m->name;
}
-API_EXPORT(module *) find_linked_module (const char *name)
+API_EXPORT(module *) find_linked_module(const char *name)
{
module *modp;
for (modp = top_module; modp; modp = modp->next) {
- if (strcmp(modp->name, name) == 0)
- return modp;
+ if (strcmp(modp->name, name) == 0)
+ return modp;
}
return NULL;
}
/* Add a named module. Returns 1 if module found, 0 otherwise. */
-API_EXPORT(int) add_named_module (const char *name)
+API_EXPORT(int) add_named_module(const char *name)
{
module *modp;
int i = 0;
for (modp = preloaded_modules[i]; modp; modp = preloaded_modules[++i]) {
- if (strcmp(modp->name, name) == 0) {
+ if (strcmp(modp->name, name) == 0) {
/* Only add modules that are not already enabled. */
if (modp->next == NULL) {
- add_module(modp);
+ add_module(modp);
}
return 1;
}
@@ -554,7 +571,7 @@
}
/* Clear the internal list of modules, in preparation for starting over. */
-API_EXPORT(void) clear_module_list ()
+API_EXPORT(void) clear_module_list()
{
module **m = &top_module;
module **next_m;
@@ -566,7 +583,7 @@
}
/* This is required; so we add it always. */
- add_named_module ("http_core.c");
+ add_named_module("http_core.c");
}
/*****************************************************************
@@ -579,226 +596,231 @@
*/
const char *invoke_cmd(const command_rec *cmd, cmd_parms *parms, void *mconfig,
- const char *args)
+ const char *args)
{
char *w, *w2, *w3;
const char *errmsg;
if ((parms->override & cmd->req_override) == 0)
- return pstrcat (parms->pool, cmd->name, " not allowed here", NULL);
-
+ return pstrcat(parms->pool, cmd->name, " not allowed here", NULL);
+
parms->info = cmd->cmd_data;
parms->cmd = cmd;
-
+
switch (cmd->args_how) {
case RAW_ARGS:
- return ((const char * (*)(cmd_parms *, void *, const char *))
+ return ((const char *(*)(cmd_parms *, void *, const char *))
(*cmd->func)) (parms, mconfig, args);
case NO_ARGS:
if (*args != 0)
- return pstrcat (parms->pool, cmd->name, " takes no arguments",
- NULL);
+ return pstrcat(parms->pool, cmd->name, " takes no arguments",
+ NULL);
- return ((const char * (*)(cmd_parms *, void *))
+ return ((const char *(*)(cmd_parms *, void *))
(*cmd->func)) (parms, mconfig);
-
+
case TAKE1:
- w = getword_conf (parms->pool, &args);
-
- if (*w == '\0' || *args != 0)
- return pstrcat (parms->pool, cmd->name, " takes one argument",
+ w = getword_conf(parms->pool, &args);
+
+ if (*w == '\0' || *args != 0)
+ return pstrcat(parms->pool, cmd->name, " takes one argument",
cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
- return ((const char * (*)(cmd_parms *, void *, const char *))
+ return ((const char *(*)(cmd_parms *, void *, const char *))
(*cmd->func)) (parms, mconfig, w);
-
+
case TAKE2:
- w = getword_conf (parms->pool, &args);
- w2 = getword_conf (parms->pool, &args);
-
- if (*w == '\0' || *w2 == '\0' || *args != 0)
- return pstrcat (parms->pool, cmd->name, " takes two arguments",
+ w = getword_conf(parms->pool, &args);
+ w2 = getword_conf(parms->pool, &args);
+
+ if (*w == '\0' || *w2 == '\0' || *args != 0)
+ return pstrcat(parms->pool, cmd->name, " takes two arguments",
cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
- return ((const char * (*)(cmd_parms *, void *, const char *,
- const char *))(*cmd->func)) (parms, mconfig, w, w2);
-
+ return ((const char *(*)(cmd_parms *, void *, const char *,
+ const char *)) (*cmd->func)) (parms, mconfig, w, w2);
+
case TAKE12:
- w = getword_conf (parms->pool, &args);
- w2 = getword_conf (parms->pool, &args);
-
- if (*w == '\0' || *args != 0)
- return pstrcat (parms->pool, cmd->name, " takes 1-2 arguments",
+ w = getword_conf(parms->pool, &args);
+ w2 = getword_conf(parms->pool, &args);
+
+ if (*w == '\0' || *args != 0)
+ return pstrcat(parms->pool, cmd->name, " takes 1-2 arguments",
cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
- return ((const char * (*)(cmd_parms *, void *, const char *,
- const char *))(*cmd->func)) (parms, mconfig, w,
- *w2 ? w2 : NULL);
-
+ return ((const char *(*)(cmd_parms *, void *, const char *,
+ const char *)) (*cmd->func)) (parms, mconfig, w,
+ *w2 ? w2 : NULL);
+
case TAKE3:
- w = getword_conf (parms->pool, &args);
- w2 = getword_conf (parms->pool, &args);
- w3 = getword_conf (parms->pool, &args);
-
- if (*w == '\0' || *w2 == '\0' || *w3 == '\0' || *args != 0)
- return pstrcat (parms->pool, cmd->name, " takes three arguments",
+ w = getword_conf(parms->pool, &args);
+ w2 = getword_conf(parms->pool, &args);
+ w3 = getword_conf(parms->pool, &args);
+
+ if (*w == '\0' || *w2 == '\0' || *w3 == '\0' || *args != 0)
+ return pstrcat(parms->pool, cmd->name, " takes three arguments",
cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
- return ((const char * (*)(cmd_parms *, void *, const char *,
- const char *, const char *))(*cmd->func)) (parms,
- mconfig, w, w2, w3);
-
+ return ((const char *(*)(cmd_parms *, void *, const char *,
+ const char *, const char *)) (*cmd->func)) (parms,
+ mconfig, w, w2, w3);
+
case TAKE23:
- w = getword_conf (parms->pool, &args);
- w2 = getword_conf (parms->pool, &args);
- w3 = *args ? getword_conf (parms->pool, &args) : NULL;
-
- if (*w == '\0' || *w2 == '\0' || *args != 0)
- return pstrcat (parms->pool, cmd->name, " takes two or three arguments",
+ w = getword_conf(parms->pool, &args);
+ w2 = getword_conf(parms->pool, &args);
+ w3 = *args ? getword_conf(parms->pool, &args) : NULL;
+
+ if (*w == '\0' || *w2 == '\0' || *args != 0)
+ return pstrcat(parms->pool, cmd->name,
+ " takes two or three arguments",
cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
- return ((const char * (*)(cmd_parms *, void *, const char *,
- const char *, const char *))(*cmd->func)) (parms,
- mconfig, w, w2, w3);
-
+ return ((const char *(*)(cmd_parms *, void *, const char *,
+ const char *, const char *)) (*cmd->func)) (parms,
+ mconfig, w, w2, w3);
+
case TAKE123:
- w = getword_conf (parms->pool, &args);
- w2 = *args ? getword_conf (parms->pool, &args) : NULL;
- w3 = *args ? getword_conf (parms->pool, &args) : NULL;
-
- if (*w == '\0' || *args != 0)
- return pstrcat (parms->pool, cmd->name, " takes one, two or three arguments",
+ w = getword_conf(parms->pool, &args);
+ w2 = *args ? getword_conf(parms->pool, &args) : NULL;
+ w3 = *args ? getword_conf(parms->pool, &args) : NULL;
+
+ if (*w == '\0' || *args != 0)
+ return pstrcat(parms->pool, cmd->name,
+ " takes one, two or three arguments",
cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
- return ((const char * (*)(cmd_parms *, void *, const char *,
- const char *, const char *))(*cmd->func)) (parms,
- mconfig, w, w2, w3);
-
+ return ((const char *(*)(cmd_parms *, void *, const char *,
+ const char *, const char *)) (*cmd->func)) (parms,
+ mconfig, w, w2, w3);
+
case TAKE13:
- w = getword_conf (parms->pool, &args);
- w2 = *args ? getword_conf (parms->pool, &args) : NULL;
- w3 = *args ? getword_conf (parms->pool, &args) : NULL;
-
- if (*w == '\0' || (*w2 && !w3) || *args != 0)
- return pstrcat (parms->pool, cmd->name, " takes one or three arguments",
+ w = getword_conf(parms->pool, &args);
+ w2 = *args ? getword_conf(parms->pool, &args) : NULL;
+ w3 = *args ? getword_conf(parms->pool, &args) : NULL;
+
+ if (*w == '\0' || (*w2 && !w3) || *args != 0)
+ return pstrcat(parms->pool, cmd->name,
+ " takes one or three arguments",
cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
- return ((const char * (*)(cmd_parms *, void *, const char *,
- const char *, const char *))(*cmd->func)) (parms,
- mconfig, w, w2, w3);
-
+ return ((const char *(*)(cmd_parms *, void *, const char *,
+ const char *, const char *)) (*cmd->func)) (parms,
+ mconfig, w, w2, w3);
+
case ITERATE:
- while (*(w = getword_conf (parms->pool, &args)) != '\0')
- if ((errmsg = ((const char * (*)(cmd_parms *, void *,
- const char *))(*cmd->func)) (parms, mconfig, w)))
- return errmsg;
+ while (*(w = getword_conf(parms->pool, &args)) != '\0')
+ if ((errmsg = ((const char *(*)(cmd_parms *, void *,
+ const char *)) (*cmd->func)) (parms, mconfig, w)))
+ return errmsg;
return NULL;
-
+
case ITERATE2:
- w = getword_conf (parms->pool, &args);
-
- if (*w == '\0' || *args == 0)
+ w = getword_conf(parms->pool, &args);
+
+ if (*w == '\0' || *args == 0)
return pstrcat(parms->pool, cmd->name,
- " requires at least two arguments",
- cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
-
-
- while (*(w2 = getword_conf (parms->pool, &args)) != '\0')
- if ((errmsg = ((const char * (*)(cmd_parms *, void *,
- const char *, const char *))(*cmd->func)) (parms,
- mconfig, w, w2)))
- return errmsg;
+ " requires at least two arguments",
+ cmd->errmsg ? ", " : NULL, cmd->errmsg, NULL);
+
+
+ while (*(w2 = getword_conf(parms->pool, &args)) != '\0')
+ if ((errmsg = ((const char *(*)(cmd_parms *, void *,
+ const char *, const char *)) (*cmd->func)) (parms,
+ mconfig, w, w2)))
+ return errmsg;
return NULL;
-
+
case FLAG:
- w = getword_conf (parms->pool, &args);
+ w = getword_conf(parms->pool, &args);
- if (*w == '\0' || (strcasecmp(w, "on") && strcasecmp (w, "off")))
- return pstrcat (parms->pool, cmd->name, " must be On or Off",
+ if (*w == '\0' || (strcasecmp(w, "on") && strcasecmp(w, "off")))
+ return pstrcat(parms->pool, cmd->name, " must be On or Off",
NULL);
- return ((const char * (*)(cmd_parms *, void *, int))
- (*cmd->func)) (parms, mconfig, strcasecmp (w, "off") != 0);
+ return ((const char *(*)(cmd_parms *, void *, int))
+ (*cmd->func)) (parms, mconfig, strcasecmp(w, "off") != 0);
default:
- return pstrcat (parms->pool, cmd->name,
- " is improperly configured internally (server bug)",
+ return pstrcat(parms->pool, cmd->name,
+ " is improperly configured internally (server bug)",
NULL);
}
}
-const command_rec *find_command (const char *name, const command_rec *cmds)
+const command_rec *find_command(const char *name, const command_rec *cmds)
{
- while (cmds->name)
- if (!strcasecmp (name, cmds->name))
+ while (cmds->name)
+ if (!strcasecmp(name, cmds->name))
return cmds;
else
++cmds;
return NULL;
}
-
-const command_rec *find_command_in_modules (const char *cmd_name, module **mod)
+
+const command_rec *find_command_in_modules(const char *cmd_name, module **mod)
{
- const command_rec *cmdp;
- module *modp;
+ const command_rec *cmdp;
+ module *modp;
- for (modp = *mod; modp; modp = modp->next)
- if (modp->cmds && (cmdp = find_command (cmd_name, modp->cmds))) {
- *mod = modp;
- return cmdp;
- }
+ for (modp = *mod; modp; modp = modp->next)
+ if (modp->cmds && (cmdp = find_command(cmd_name, modp->cmds))) {
+ *mod = modp;
+ return cmdp;
+ }
- return NULL;
+ return NULL;
}
-const char *handle_command (cmd_parms *parms, void *config, const char *l)
+const char *handle_command(cmd_parms *parms, void *config, const char *l)
{
const char *args, *cmd_name, *retval;
const command_rec *cmd;
module *mod = top_module;
++parms->config_line;
- if((l[0] == '#') || (!l[0])) return NULL;
-
+ if ((l[0] == '#') || (!l[0]))
+ return NULL;
+
args = l;
- cmd_name = getword_conf (parms->temp_pool, &args);
- if (*cmd_name == '\0') return NULL;
-
+ cmd_name = getword_conf(parms->temp_pool, &args);
+ if (*cmd_name == '\0')
+ return NULL;
+
do {
- if (!(cmd = find_command_in_modules (cmd_name, &mod))) {
- return pstrcat (parms->pool, "Invalid command ", cmd_name, NULL);
+ if (!(cmd = find_command_in_modules(cmd_name, &mod))) {
+ return pstrcat(parms->pool, "Invalid command ", cmd_name, NULL);
}
else {
- void *mconfig = get_module_config (config, mod);
+ void *mconfig = get_module_config(config, mod);
void *sconfig =
- get_module_config (parms->server->module_config, mod);
-
+ get_module_config(parms->server->module_config, mod);
+
if (!mconfig && mod->create_dir_config) {
mconfig = (*mod->create_dir_config) (parms->pool, parms->path);
- set_module_config (config, mod, mconfig);
+ set_module_config(config, mod, mconfig);
}
-
+
if (!sconfig && mod->create_server_config) {
sconfig =
- (*mod->create_server_config)(parms->pool, parms->server);
- set_module_config (parms->server->module_config, mod, sconfig);
+ (*mod->create_server_config) (parms->pool, parms->server);
+ set_module_config(parms->server->module_config, mod, sconfig);
}
-
- retval = invoke_cmd (cmd, parms, mconfig, args);
+
+ retval = invoke_cmd(cmd, parms, mconfig, args);
mod = mod->next; /* Next time around, skip this one */
}
} while (retval && !strcmp(retval, DECLINE_CMD));
@@ -806,13 +828,14 @@
return retval;
}
-const char *srm_command_loop (cmd_parms *parms, void *config)
+const char *srm_command_loop(cmd_parms *parms, void *config)
{
char l[MAX_STRING_LEN];
-
- while (!(cfg_getline (l, MAX_STRING_LEN, parms->infile))) {
- const char *errmsg = handle_command (parms, config, l);
- if (errmsg) return errmsg;
+
+ while (!(cfg_getline(l, MAX_STRING_LEN, parms->infile))) {
+ const char *errmsg = handle_command(parms, config, l);
+ if (errmsg)
+ return errmsg;
}
return NULL;
@@ -822,38 +845,38 @@
* Generic command functions...
*/
-API_EXPORT_NONSTD(const char *) set_string_slot (cmd_parms *cmd,
- char *struct_ptr, char *arg)
+API_EXPORT_NONSTD(const char *) set_string_slot(cmd_parms *cmd,
+ char *struct_ptr, char *arg)
{
/* This one's pretty generic... */
-
- int offset = (int)(long)cmd->info;
- *(char **)(struct_ptr + offset) = pstrdup (cmd->pool, arg);
+
+ int offset = (int) (long) cmd->info;
+ *(char **) (struct_ptr + offset) = pstrdup(cmd->pool, arg);
return NULL;
}
-API_EXPORT_NONSTD(const char *) set_flag_slot (cmd_parms *cmd,
- char *struct_ptr, int arg)
+API_EXPORT_NONSTD(const char *) set_flag_slot(cmd_parms *cmd,
+ char *struct_ptr, int arg)
{
/* This one's pretty generic too... */
-
- int offset = (int)(long)cmd->info;
- *(int *)(struct_ptr + offset) = arg ? 1 : 0;
+
+ int offset = (int) (long) cmd->info;
+ *(int *) (struct_ptr + offset) = arg ? 1 : 0;
return NULL;
}
-const char *set_file_slot (cmd_parms *cmd, char *struct_ptr, char *arg)
+const char *set_file_slot(cmd_parms *cmd, char *struct_ptr, char *arg)
{
/* Prepend server_root to relative arg.
This allows .htaccess to be independent of server_root,
so the server can be moved or mirrored with less pain. */
char *p;
- int offset = (int)cmd->info;
+ int offset = (int) cmd->info;
if (*arg == '/')
- p = pstrdup (cmd->pool, arg);
+ p = pstrdup(cmd->pool, arg);
else
- p = make_full_path (cmd->pool, server_root, arg);
- *(char **)(struct_ptr + offset) = p;
+ p = make_full_path(cmd->pool, server_root, arg);
+ *(char **) (struct_ptr + offset) = p;
return NULL;
}
@@ -862,17 +885,20 @@
* Reading whole config files...
*/
-cmd_parms default_parms = { NULL, 0, -1, NULL, 0, NULL, NULL, NULL, NULL };
+cmd_parms default_parms =
+{NULL, 0, -1, NULL, 0, NULL, NULL, NULL, NULL};
-API_EXPORT(char *)server_root_relative (pool *p, char *file)
+API_EXPORT(char *) server_root_relative(pool *p, char *file)
{
#ifdef __EMX__
/* Add support for OS/2 drive names */
- if ((file[0] == '/') || (file[1] == ':')) return file;
+ if ((file[0] == '/') || (file[1] == ':'))
+ return file;
#else
- if (file[0] == '/') return file;
-#endif
- return make_full_path (p, server_root, file);
+ if (file[0] == '/')
+ return file;
+#endif
+ return make_full_path(p, server_root, file);
}
void process_resource_config(server_rec *s, char *fname, pool *p, pool *ptemp)
@@ -881,42 +907,42 @@
const char *errmsg;
cmd_parms parms;
struct stat finfo;
-
- fname = server_root_relative (p, fname);
+
+ fname = server_root_relative(p, fname);
if (!(strcmp(fname, server_root_relative(p, RESOURCE_CONFIG_FILE))) ||
!(strcmp(fname, server_root_relative(p, ACCESS_CONFIG_FILE)))) {
if (stat(fname, &finfo) == -1)
return;
}
-
+
/* GCC's initialization extensions are soooo nice here... */
-
+
parms = default_parms;
parms.config_file = fname;
parms.pool = p;
parms.temp_pool = ptemp;
parms.server = s;
- parms.override = (RSRC_CONF|OR_ALL)&~(OR_AUTHCFG|OR_LIMIT);
-
- if(!(cfg = fopen(fname, "r"))) {
- perror("fopen");
- fprintf(stderr,"httpd: could not open document config file %s\n",
- fname);
- exit(1);
- }
+ parms.override = (RSRC_CONF | OR_ALL) & ~(OR_AUTHCFG | OR_LIMIT);
+
+ if (!(cfg = fopen(fname, "r"))) {
+ perror("fopen");
+ fprintf(stderr, "httpd: could not open document config file %s\n",
+ fname);
+ exit(1);
+ }
parms.infile = cfg;
-
- errmsg = srm_command_loop (&parms, s->lookup_defaults);
-
+
+ errmsg = srm_command_loop(&parms, s->lookup_defaults);
+
if (errmsg) {
- fprintf (stderr, "Syntax error on line %d of %s:\n",
- parms.config_line, fname);
- fprintf (stderr, "%s\n", errmsg);
+ fprintf(stderr, "Syntax error on line %d of %s:\n",
+ parms.config_line, fname);
+ fprintf(stderr, "%s\n", errmsg);
exit(1);
}
-
+
fclose(cfg);
}
@@ -933,10 +959,10 @@
void *dc;
/* firstly, search cache */
- for (cache=r->htaccess; cache != NULL; cache=cache->next)
- if (cache->override == override && strcmp(cache->dir, d) == 0)
- {
- if (cache->htaccess != NULL) *result = cache->htaccess;
+ for (cache = r->htaccess; cache != NULL; cache = cache->next)
+ if (cache->override == override && strcmp(cache->dir, d) == 0) {
+ if (cache->htaccess != NULL)
+ *result = cache->htaccess;
return OK;
}
@@ -945,7 +971,7 @@
parms.pool = r->pool;
parms.temp_pool = r->pool;
parms.server = r->server;
- parms.path = pstrdup (r->pool, d);
+ parms.path = pstrdup(r->pool, d);
/* loop through the access names and find the first one */
while (!f && access_name[0]) {
@@ -954,20 +980,20 @@
f = pfopen(r->pool, filename, "r");
}
if (f) {
- dc = create_per_dir_config (r->pool);
-
- parms.infile = f;
+ dc = create_per_dir_config(r->pool);
+
+ parms.infile = f;
parms.config_file = filename;
- errmsg = srm_command_loop (&parms, dc);
-
- pfclose(r->pool, f);
+ errmsg = srm_command_loop(&parms, dc);
+
+ pfclose(r->pool, f);
if (errmsg) {
aplog_error(APLOG_MARK, APLOG_ALERT, r->server, "%s: %s", filename, errmsg);
return SERVER_ERROR;
}
-
+
*result = dc;
}
else {
@@ -1006,7 +1032,7 @@
* *paddr is the variable used to keep track of **paddr between calls
* port is the default port to assume
*/
-static void get_addresses (pool *p, char *w, server_addr_rec ***paddr, unsigned port)
+static void get_addresses(pool *p, char *w, server_addr_rec ***paddr, unsigned port)
{
struct hostent *hep;
unsigned long my_addr;
@@ -1014,16 +1040,19 @@
char *t;
int i, is_an_ip_addr;
- if( *w == 0 ) return;
+ if (*w == 0)
+ return;
t = strchr(w, ':');
if (t) {
- if( strcmp(t+1,"*") == 0 ) {
+ if (strcmp(t + 1, "*") == 0) {
port = 0;
- } else if( (i = atoi(t+1)) ) {
+ }
+ else if ((i = atoi(t + 1))) {
port = i;
- } else {
- fprintf( stderr, "Port must be numeric\n" );
+ }
+ else {
+ fprintf(stderr, "Port must be numeric\n");
}
*t = 0;
}
@@ -1032,65 +1061,70 @@
if (strcmp(w, "*") == 0) {
my_addr = htonl(INADDR_ANY);
is_an_ip_addr = 1;
- } else if( strcmp(w, "_default_") == 0
- || strcmp(w, "255.255.255.255") == 0 ) {
+ }
+ else if (strcmp(w, "_default_") == 0
+ || strcmp(w, "255.255.255.255") == 0) {
my_addr = DEFAULT_VHOST_ADDR;
is_an_ip_addr = 1;
- } else if ((my_addr = ap_inet_addr(w)) != INADDR_NONE) {
+ }
+ else if ((my_addr = ap_inet_addr(w)) != INADDR_NONE) {
is_an_ip_addr = 1;
}
- if( is_an_ip_addr ) {
- sar = pcalloc( p, sizeof( server_addr_rec ) );
+ if (is_an_ip_addr) {
+ sar = pcalloc(p, sizeof(server_addr_rec));
**paddr = sar;
*paddr = &sar->next;
sar->host_addr.s_addr = my_addr;
sar->host_port = port;
sar->virthost = pstrdup(p, w);
- if (t != NULL) *t = ':';
+ if (t != NULL)
+ *t = ':';
return;
}
hep = gethostbyname(w);
if ((!hep) || (hep->h_addrtype != AF_INET || !hep->h_addr_list[0])) {
- fprintf (stderr, "Cannot resolve host name %s --- ignoring!\n", w);
- if (t != NULL) *t = ':';
+ fprintf(stderr, "Cannot resolve host name %s --- ignoring!\n", w);
+ if (t != NULL)
+ *t = ':';
return;
}
- for( i = 0; hep->h_addr_list[i]; ++i ) {
- sar = pcalloc( p, sizeof( server_addr_rec ) );
+ for (i = 0; hep->h_addr_list[i]; ++i) {
+ sar = pcalloc(p, sizeof(server_addr_rec));
**paddr = sar;
*paddr = &sar->next;
- sar->host_addr = *(struct in_addr *)hep->h_addr_list[i];
+ sar->host_addr = *(struct in_addr *) hep->h_addr_list[i];
sar->host_port = port;
sar->virthost = pstrdup(p, w);
}
- if (t != NULL) *t = ':';
+ if (t != NULL)
+ *t = ':';
}
-server_rec *init_virtual_host (pool *p, const char *hostname,
- server_rec *main_server)
+server_rec *init_virtual_host(pool *p, const char *hostname,
+ server_rec *main_server)
{
- server_rec *s = (server_rec *)pcalloc (p, sizeof (server_rec));
+ server_rec *s = (server_rec *) pcalloc(p, sizeof(server_rec));
server_addr_rec **addrs;
#ifdef RLIMIT_NOFILE
struct rlimit limits;
- getrlimit ( RLIMIT_NOFILE, &limits );
- if ( limits.rlim_cur < limits.rlim_max ) {
- limits.rlim_cur += 2;
- if ( setrlimit ( RLIMIT_NOFILE, &limits ) < 0 ) {
- perror ("setrlimit(RLIMIT_NOFILE)");
- fprintf (stderr, "Cannot exceed hard limit for open files");
- }
+ getrlimit(RLIMIT_NOFILE, &limits);
+ if (limits.rlim_cur < limits.rlim_max) {
+ limits.rlim_cur += 2;
+ if (setrlimit(RLIMIT_NOFILE, &limits) < 0) {
+ perror("setrlimit(RLIMIT_NOFILE)");
+ fprintf(stderr, "Cannot exceed hard limit for open files");
+ }
}
#endif
s->server_admin = NULL;
- s->server_hostname = NULL;
+ s->server_hostname = NULL;
s->error_fname = NULL;
s->srm_confname = NULL;
s->access_confname = NULL;
@@ -1100,19 +1134,20 @@
s->keep_alive_max = -1;
s->error_log = main_server->error_log;
s->loglevel = main_server->loglevel;
-
+
/* start the list of addreses */
addrs = &s->addrs;
- while( hostname[0] ) {
- get_addresses( p, getword_conf( p, &hostname ), &addrs,
- main_server->port );
+ while (hostname[0]) {
+ get_addresses(p, getword_conf(p, &hostname), &addrs,
+ main_server->port);
}
/* terminate the list */
*addrs = NULL;
- if( s->addrs ) {
+ if (s->addrs) {
if (s->addrs->host_port) {
- s->port = s->addrs->host_port; /* set them the same, by default */
- } else {
+ s->port = s->addrs->host_port; /* set them the same, by default */
+ }
+ else {
/* otherwise we get a port of 0 on redirects */
s->port = main_server->port;
}
@@ -1122,31 +1157,31 @@
s->is_virtual = 1;
s->names = NULL;
- s->module_config = create_empty_config (p);
- s->lookup_defaults = create_per_dir_config (p);
-
+ s->module_config = create_empty_config(p);
+ s->lookup_defaults = create_per_dir_config(p);
+
s->server_uid = user_id;
s->server_gid = group_id;
return s;
}
-int is_virtual_server (server_rec *s)
+int is_virtual_server(server_rec *s)
{
return s->is_virtual;
}
-void fixup_virtual_hosts (pool *p, server_rec *main_server)
+void fixup_virtual_hosts(pool *p, server_rec *main_server)
{
server_rec *virt;
for (virt = main_server->next; virt; virt = virt->next) {
- merge_server_configs (p, main_server->module_config,
- virt->module_config);
-
+ merge_server_configs(p, main_server->module_config,
+ virt->module_config);
+
virt->lookup_defaults =
- merge_per_dir_configs (p, main_server->lookup_defaults,
- virt->lookup_defaults);
+ merge_per_dir_configs(p, main_server->lookup_defaults,
+ virt->lookup_defaults);
if (virt->server_admin == NULL)
virt->server_admin = main_server->server_admin;
@@ -1170,13 +1205,13 @@
virt->keep_alive_max = main_server->keep_alive_max;
if (virt->send_buffer_size == 0)
- virt->send_buffer_size = main_server->send_buffer_size;
+ virt->send_buffer_size = main_server->send_buffer_size;
/* XXX: this is really something that should be dealt with by a
* post-config api phase */
- core_reorder_directories (p, virt);
+ core_reorder_directories(p, virt);
}
- core_reorder_directories (p, main_server);
+ core_reorder_directories(p, main_server);
}
/*****************************************************************
@@ -1184,10 +1219,10 @@
* Getting *everything* configured...
*/
-void init_config_globals (pool *p)
+void init_config_globals(pool *p)
{
/* ServerRoot, server_confname set in httpd.c */
-
+
standalone = 1;
user_name = DEFAULT_USER;
user_id = uname2id(DEFAULT_USER);
@@ -1205,20 +1240,20 @@
listenbacklog = DEFAULT_LISTENBACKLOG;
/* Global virtual host hash bucket pointers. Init to null. */
- memset (vhash_table, 0,
- (VHASH_TABLE_SIZE + VHASH_EXTRA_SLOP) * sizeof (vhash_table[0]));
+ memset(vhash_table, 0,
+ (VHASH_TABLE_SIZE + VHASH_EXTRA_SLOP) * sizeof(vhash_table[0]));
- strncpy(coredump_dir, server_root, sizeof(coredump_dir)-1);
- coredump_dir[sizeof(coredump_dir)-1] = '\0';
+ strncpy(coredump_dir, server_root, sizeof(coredump_dir) - 1);
+ coredump_dir[sizeof(coredump_dir) - 1] = '\0';
}
server_rec *init_server_config(pool *p)
{
- server_rec *s = (server_rec *)pcalloc (p, sizeof (server_rec));
+ server_rec *s = (server_rec *) pcalloc(p, sizeof(server_rec));
s->port = DEFAULT_PORT;
s->server_admin = DEFAULT_ADMIN;
- s->server_hostname = NULL;
+ s->server_hostname = NULL;
s->error_fname = DEFAULT_ERRORLOG;
s->error_log = stderr;
s->loglevel = DEFAULT_LOGLEVEL;
@@ -1229,15 +1264,13 @@
s->keep_alive_max = DEFAULT_KEEPALIVE;
s->keep_alive = 1;
s->next = NULL;
- s->addrs = pcalloc(p, sizeof (server_addr_rec));
- s->addrs->host_addr.s_addr = htonl (INADDR_ANY); /* NOT virtual host;
- * don't match any real network
- * interface.
- */
- s->addrs->host_port = 0; /* matches any port */
+ s->addrs = pcalloc(p, sizeof(server_addr_rec));
+ /* NOT virtual host; don't match any real network interface */
+ s->addrs->host_addr.s_addr = htonl(INADDR_ANY);
+ s->addrs->host_port = 0; /* matches any port */
- s->module_config = create_server_config (p, s);
- s->lookup_defaults = create_default_per_dir_config (p);
+ s->module_config = create_server_config(p, s);
+ s->lookup_defaults = create_default_per_dir_config(p);
return s;
}
@@ -1265,28 +1298,28 @@
server_rec *read_config(pool *p, pool *ptemp, char *confname)
{
server_rec *s = init_server_config(p);
-
+
init_config_globals(p);
-
+
/* All server-wide config files now have the SAME syntax... */
-
- process_resource_config (s, confname, p, ptemp);
- process_resource_config (s, s->srm_confname, p, ptemp);
- process_resource_config (s, s->access_confname, p, ptemp);
-
- fixup_virtual_hosts (p, s);
- default_listeners (p, s);
+
+ process_resource_config(s, confname, p, ptemp);
+ process_resource_config(s, s->srm_confname, p, ptemp);
+ process_resource_config(s, s->access_confname, p, ptemp);
+
+ fixup_virtual_hosts(p, s);
+ default_listeners(p, s);
return s;
}
-
+
void init_modules(pool *p, server_rec *s)
{
module *m;
for (m = top_module; m; m = m->next)
- if (m->init)
+ if (m->init)
(*m->init) (s, p);
}
@@ -1295,7 +1328,7 @@
module *m;
for (m = top_module; m; m = m->next)
- if (m->child_init)
+ if (m->child_init)
(*m->child_init) (s, p);
}
@@ -1304,14 +1337,14 @@
module *m;
#ifdef SIGHUP
- signal (SIGHUP, SIG_IGN);
-#endif
+ signal(SIGHUP, SIG_IGN);
+#endif
#ifdef SIGUSR1
- signal (SIGUSR1, SIG_IGN);
-#endif
+ signal(SIGUSR1, SIG_IGN);
+#endif
for (m = top_module; m; m = m->next)
- if (m->child_exit)
+ if (m->child_exit)
(*m->child_exit) (s, p);
}
@@ -1335,52 +1368,57 @@
void show_overrides(command_rec *pc, module *pm)
{
int n = 0;
-
+
printf("\tAllowed in *.conf ");
- if ((pc->req_override & (OR_OPTIONS|OR_FILEINFO|OR_INDEXES)) ||
- ((pc->req_override & RSRC_CONF) &&
- ((pc->req_override & (ACCESS_CONF|OR_AUTHCFG|OR_LIMIT)))))
- printf("anywhere");
+ if ((pc->req_override & (OR_OPTIONS | OR_FILEINFO | OR_INDEXES)) ||
+ ((pc->req_override & RSRC_CONF) &&
+ ((pc->req_override & (ACCESS_CONF | OR_AUTHCFG | OR_LIMIT)))))
+ printf("anywhere");
else if (pc->req_override & RSRC_CONF)
- printf("only outside <Directory> or <Location>");
- else
- printf("only inside <Directory> or <Location>");
+ printf("only outside <Directory> or <Location>");
+ else
+ printf("only inside <Directory> or <Location>");
/* Warn if the directive is allowed inside <Directory> or .htaccess
* but module doesn't support per-dir configuration */
- if ((pc->req_override & (OR_ALL|ACCESS_CONF)) && !pm->create_dir_config)
- printf(" [no per-dir config]");
+ if ((pc->req_override & (OR_ALL | ACCESS_CONF)) && !pm->create_dir_config)
+ printf(" [no per-dir config]");
if (pc->req_override & OR_ALL) {
- printf(" and in .htaccess\n\twhen AllowOverride");
+ printf(" and in .htaccess\n\twhen AllowOverride");
+
+ if ((pc->req_override & OR_ALL) == OR_ALL)
+ printf(" isn't None");
+ else {
+ printf(" includes ");
- if ((pc->req_override & OR_ALL) == OR_ALL)
- printf(" isn't None");
- else {
- printf(" includes ");
-
- if (pc->req_override & OR_AUTHCFG) {
- if (n++) printf(" or ");
- printf("AuthConfig");
- }
- if (pc->req_override & OR_LIMIT) {
- if (n++) printf(" or ");
- printf("Limit");
- }
- if (pc->req_override & OR_OPTIONS) {
- if (n++) printf(" or ");
- printf("Options");
- }
- if (pc->req_override & OR_FILEINFO) {
- if (n++) printf(" or ");
- printf("FileInfo");
- }
- if (pc->req_override & OR_INDEXES) {
- if (n++) printf(" or ");
- printf("Indexes");
- }
- }
+ if (pc->req_override & OR_AUTHCFG) {
+ if (n++)
+ printf(" or ");
+ printf("AuthConfig");
+ }
+ if (pc->req_override & OR_LIMIT) {
+ if (n++)
+ printf(" or ");
+ printf("Limit");
+ }
+ if (pc->req_override & OR_OPTIONS) {
+ if (n++)
+ printf(" or ");
+ printf("Options");
+ }
+ if (pc->req_override & OR_FILEINFO) {
+ if (n++)
+ printf(" or ");
+ printf("FileInfo");
+ }
+ if (pc->req_override & OR_INDEXES) {
+ if (n++)
+ printf(" or ");
+ printf("Indexes");
+ }
+ }
}
printf("\n");
}
@@ -1393,24 +1431,23 @@
{
command_rec *pc;
int n;
-
+
for (n = 0; preloaded_modules[n]; ++n)
- for (pc = preloaded_modules[n]->cmds; pc && pc->name; ++pc) {
- printf("%s\n", pc->name);
- if (pc->errmsg)
- printf("\t%s\n", pc->errmsg);
- printf("\t%s\n", preloaded_modules[n]->name);
- show_overrides(pc, preloaded_modules[n]);
- }
+ for (pc = preloaded_modules[n]->cmds; pc && pc->name; ++pc) {
+ printf("%s\n", pc->name);
+ if (pc->errmsg)
+ printf("\t%s\n", pc->errmsg);
+ printf("\t%s\n", preloaded_modules[n]->name);
+ show_overrides(pc, preloaded_modules[n]);
+ }
}
/* Show the preloaded module names. Used for httpd -l. */
void show_modules()
{
int n;
-
- printf ("Compiled-in modules:\n");
+
+ printf("Compiled-in modules:\n");
for (n = 0; preloaded_modules[n]; ++n)
- printf (" %s\n", preloaded_modules[n]->name);
+ printf(" %s\n", preloaded_modules[n]->name);
}
-
1.51 +79 -79 apachen/src/main/http_config.h
Index: http_config.h
===================================================================
RCS file: /export/home/cvs/apachen/src/main/http_config.h,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- http_config.h 1997/09/12 19:53:14 1.50
+++ http_config.h 1997/09/16 00:18:03 1.51
@@ -57,36 +57,36 @@
/* Command dispatch structures... */
enum cmd_how {
- RAW_ARGS, /* cmd_func parses command line itself */
- TAKE1, /* one argument only */
- TAKE2, /* two arguments only */
- ITERATE, /* one argument, occuring multiple times
+ RAW_ARGS, /* cmd_func parses command line itself */
+ TAKE1, /* one argument only */
+ TAKE2, /* two arguments only */
+ ITERATE, /* one argument, occuring multiple times
* (e.g., IndexIgnore)
*/
- ITERATE2, /* two arguments, 2nd occurs multiple times
+ ITERATE2, /* two arguments, 2nd occurs multiple times
* (e.g., AddIcon)
*/
- FLAG, /* One of 'On' or 'Off' */
- NO_ARGS, /* No args at all, e.g. </Directory> */
- TAKE12, /* one or two arguments */
- TAKE3, /* three arguments only */
- TAKE23, /* two or three arguments */
- TAKE123, /* one, two or three arguments */
- TAKE13 /* one or three arguments */
+ FLAG, /* One of 'On' or 'Off' */
+ NO_ARGS, /* No args at all, e.g. </Directory> */
+ TAKE12, /* one or two arguments */
+ TAKE3, /* three arguments only */
+ TAKE23, /* two or three arguments */
+ TAKE123, /* one, two or three arguments */
+ TAKE13 /* one or three arguments */
};
typedef struct command_struct {
- char *name; /* Name of this command */
- const char *(*func)(); /* Function invoked */
- void *cmd_data; /* Extra data, for functions which
+ char *name; /* Name of this command */
+ const char *(*func) (); /* Function invoked */
+ void *cmd_data; /* Extra data, for functions which
* implement multiple commands...
*/
- int req_override; /* What overrides need to be allowed to
+ int req_override; /* What overrides need to be allowed to
* enable this command.
*/
- enum cmd_how args_how; /* What the command expects as arguments */
-
- char *errmsg; /* 'usage' message, in case of syntax errors */
+ enum cmd_how args_how; /* What the command expects as arguments */
+
+ char *errmsg; /* 'usage' message, in case of syntax errors */
} command_rec;
/* The allowed locations for a configuration directive are the union of
@@ -133,11 +133,11 @@
void *info; /* Argument to command from cmd_table */
int override; /* Which allow-override bits are set */
int limited; /* Which methods are <Limit>ed */
-
+
char *config_file; /* Filename cmd read from */
int config_line; /* Line cmd read from */
FILE *infile; /* fd for more lines (not currently used) */
-
+
pool *pool; /* Pool to allocate new storage in */
pool *temp_pool; /* Pool for scratch memory; persists during
* configuration, but wiped before the first
@@ -177,24 +177,24 @@
struct module_struct *next;
#ifdef ULTRIX_BRAIN_DEATH
- void (*init)();
- void *(*create_dir_config)();
- void *(*merge_dir_config)();
- void *(*create_server_config)();
- void *(*merge_server_config)();
+ void (*init) ();
+ void *(*create_dir_config) ();
+ void *(*merge_dir_config) ();
+ void *(*create_server_config) ();
+ void *(*merge_server_config) ();
#else
- void (*init)(server_rec *, pool *);
- void *(*create_dir_config)(pool *p, char *dir);
- void *(*merge_dir_config)(pool *p, void *base_conf, void *new_conf);
- void *(*create_server_config)(pool *p, server_rec *s);
- void *(*merge_server_config)(pool *p, void *base_conf, void *new_conf);
+ void (*init) (server_rec *, pool *);
+ void *(*create_dir_config) (pool *p, char *dir);
+ void *(*merge_dir_config) (pool *p, void *base_conf, void *new_conf);
+ void *(*create_server_config) (pool *p, server_rec *s);
+ void *(*merge_server_config) (pool *p, void *base_conf, void *new_conf);
#endif
command_rec *cmds;
handler_rec *handlers;
/* Hooks for getting into the middle of server ops...
- *
+
* translate_handler --- translate URI to filename
* access_checker --- check access by host address, etc. All of these
* run; if all decline, that's still OK.
@@ -209,15 +209,15 @@
* post_read_request --- run right after read_request or internal_redirect,
* and not run during any subrequests.
*/
-
- int (*translate_handler)(request_rec *);
- int (*check_user_id)(request_rec *);
- int (*auth_checker)(request_rec *);
- int (*access_checker)(request_rec *);
- int (*type_checker)(request_rec *);
- int (*fixer_upper)(request_rec *);
- int (*logger)(request_rec *);
- int (*header_parser)(request_rec *);
+
+ int (*translate_handler) (request_rec *);
+ int (*check_user_id) (request_rec *);
+ int (*auth_checker) (request_rec *);
+ int (*access_checker) (request_rec *);
+ int (*type_checker) (request_rec *);
+ int (*fixer_upper) (request_rec *);
+ int (*logger) (request_rec *);
+ int (*header_parser) (request_rec *);
/* Regardless of the model the server uses for managing "units of
* execution", i.e. multi-process, multi-threaded, hybrids of those,
@@ -230,13 +230,13 @@
* init method above.
*/
#ifdef ULTRIX_BRAIN_DEATH
- void (*child_init)();
- void (*child_exit)();
+ void (*child_init) ();
+ void (*child_exit) ();
#else
- void (*child_init)(server_rec *, pool *);
- void (*child_exit)(server_rec *, pool *);
+ void (*child_init) (server_rec *, pool *);
+ void (*child_exit) (server_rec *, pool *);
#endif
- int (*post_read_request)(request_rec *);
+ int (*post_read_request) (request_rec *);
} module;
/* Initializer for the first few module slots, which are only
@@ -253,29 +253,29 @@
* data
*/
-API_EXPORT(void *) get_module_config (void *conf_vector, module *m);
-API_EXPORT(void) set_module_config (void *conf_vector, module *m, void *val);
-
+API_EXPORT(void *) get_module_config(void *conf_vector, module *m);
+API_EXPORT(void) set_module_config(void *conf_vector, module *m, void *val);
+
/* Generic command handling function... */
-API_EXPORT_NONSTD(const char *) set_string_slot (cmd_parms *, char *, char *);
-API_EXPORT_NONSTD(const char *) set_flag_slot (cmd_parms *, char *, int);
-API_EXPORT_NONSTD(const char *) set_file_slot (cmd_parms *, char *, char *);
+API_EXPORT_NONSTD(const char *) set_string_slot(cmd_parms *, char *, char *);
+API_EXPORT_NONSTD(const char *) set_flag_slot(cmd_parms *, char *, int);
+API_EXPORT_NONSTD(const char *) set_file_slot(cmd_parms *, char *, char *);
/* For modules which need to read config files, open logs, etc. ...
* this returns the fname argument if it begins with '/'; otherwise
* it relativizes it wrt server_root.
*/
-API_EXPORT(char *) server_root_relative (pool *p, char *fname);
-
+API_EXPORT(char *) server_root_relative(pool *p, char *fname);
+
/* Finally, the hook for dynamically loading modules in... */
-API_EXPORT(void) add_module (module *m);
-API_EXPORT(int) add_named_module (const char *name);
-API_EXPORT(void) clear_module_list (void);
-API_EXPORT(const char *) find_module_name (module *m);
-API_EXPORT(module *) find_linked_module (const char *name);
+API_EXPORT(void) add_module(module *m);
+API_EXPORT(int) add_named_module(const char *name);
+API_EXPORT(void) clear_module_list(void);
+API_EXPORT(const char *) find_module_name(module *m);
+API_EXPORT(module *) find_linked_module(const char *name);
#ifdef CORE_PRIVATE
@@ -284,7 +284,7 @@
/* For http_main.c... */
-server_rec *read_config (pool *conf_pool, pool *temp_pool, char *config_name);
+server_rec *read_config(pool *conf_pool, pool *temp_pool, char *config_name);
void init_modules(pool *p, server_rec *s);
void child_init_modules(pool *p, server_rec *s);
void child_exit_modules(pool *p, server_rec *s);
@@ -294,34 +294,34 @@
/* For http_request.c... */
-void *create_request_config (pool *p);
-void *create_per_dir_config (pool *p);
-void *merge_per_dir_configs (pool *p, void *base, void *new);
+void *create_request_config(pool *p);
+void *create_per_dir_config(pool *p);
+void *merge_per_dir_configs(pool *p, void *base, void *new);
-void core_reorder_directories (pool *, server_rec *);
+void core_reorder_directories(pool *, server_rec *);
/* For http_core.c... (<Directory> command and virtual hosts) */
int parse_htaccess(void **result, request_rec *r, int override,
- const char *path, const char *access_name);
-const char *srm_command_loop (cmd_parms *parms, void *config);
+ const char *path, const char *access_name);
+const char *srm_command_loop(cmd_parms *parms, void *config);
-server_rec *init_virtual_host (pool *p, const char *hostname, server_rec *main_server);
-int is_virtual_server (server_rec *);
+server_rec *init_virtual_host(pool *p, const char *hostname, server_rec *main_server);
+int is_virtual_server(server_rec *);
void process_resource_config(server_rec *s, char *fname, pool *p, pool *ptemp);
/* Module-method dispatchers, also for http_request.c */
-int translate_name (request_rec *);
-int directory_walk (request_rec *); /* check symlinks, get per-dir config */
-int check_access (request_rec *); /* check access on non-auth basis */
-int check_user_id (request_rec *); /* obtain valid username from client auth */
-int check_auth (request_rec *); /* check (validated) user is authorized here */
-int find_types (request_rec *); /* identify MIME type */
-int run_fixups (request_rec *); /* poke around for other metainfo, etc.... */
-int invoke_handler (request_rec *);
-int log_transaction (request_rec *r);
-int header_parse (request_rec *);
-int run_post_read_request (request_rec *);
+int translate_name(request_rec *);
+int directory_walk(request_rec *); /* check symlinks, get per-dir config */
+int check_access(request_rec *); /* check access on non-auth basis */
+int check_user_id(request_rec *); /* obtain valid username from client auth */
+int check_auth(request_rec *); /* check (validated) user is authorized here */
+int find_types(request_rec *); /* identify MIME type */
+int run_fixups(request_rec *); /* poke around for other metainfo, etc.... */
+int invoke_handler(request_rec *);
+int log_transaction(request_rec *r);
+int header_parse(request_rec *);
+int run_post_read_request(request_rec *);
#endif