dgaudet 98/02/19 23:15:47
Modified: src/main http_core.c
Log:
Fix <FooMatch> sections. I bungled them before.
Submitted by: Martin Kraemer
Revision Changes Path
1.160 +15 -12 apache-1.3/src/main/http_core.c
Index: http_core.c
===================================================================
RCS file: /export/home/cvs/apache-1.3/src/main/http_core.c,v
retrieving revision 1.159
retrieving revision 1.160
diff -u -r1.159 -r1.160
--- http_core.c 1998/02/18 10:01:13 1.159
+++ http_core.c 1998/02/20 07:15:46 1.160
@@ -965,6 +965,7 @@
void *new_dir_conf = create_per_dir_config (cmd->pool);
regex_t *r = NULL;
const char *old_end_token;
+ const command_rec *thiscmd = cmd->cmd;
const char *err = check_cmd_context(cmd,
NOT_IN_DIR_LOC_FILE|NOT_IN_LIMIT);
if (err != NULL) return err;
@@ -978,7 +979,7 @@
#endif
cmd->override = OR_ALL|ACCESS_CONF;
- if (cmd->info) { /* <DirectoryMatch> */
+ if (thiscmd->cmd_data) { /* <DirectoryMatch> */
r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED|USE_ICASE);
}
else if (!strcmp(cmd->path, "~")) {
@@ -991,13 +992,13 @@
}
old_end_token = cmd->end_token;
- cmd->end_token = cmd->info ? end_directorymatch_section :
end_directory_section;
+ cmd->end_token = thiscmd->cmd_data ? end_directorymatch_section :
end_directory_section;
errmsg = srm_command_loop (cmd, new_dir_conf);
if (errmsg == NULL) {
errmsg = missing_endsection(cmd, 1);
}
cmd->end_token = old_end_token;
- if (errmsg != (cmd->info ? end_directorymatch_section :
end_directory_section))
+ if (errmsg != (thiscmd->cmd_data ? end_directorymatch_section :
end_directory_section))
return errmsg;
conf = (core_dir_config *)get_module_config(new_dir_conf, &core_module);
@@ -1006,7 +1007,7 @@
add_per_dir_conf (cmd->server, new_dir_conf);
if (*arg != '\0')
- return pstrcat (cmd->pool, "Multiple <", (cmd->info) ? "DirectoryMatch"
: "Directory",
+ return pstrcat (cmd->pool, "Multiple ", thiscmd->name,
"> arguments not (yet) supported.", NULL);
cmd->path = old_path;
@@ -1024,6 +1025,7 @@
core_dir_config *conf;
regex_t *r = NULL;
const char *old_end_token;
+ const command_rec *thiscmd = cmd->cmd;
void *new_url_conf = create_per_dir_config (cmd->pool);
@@ -1035,7 +1037,7 @@
cmd->path = getword_conf (cmd->pool, &arg);
cmd->override = OR_ALL|ACCESS_CONF;
- if (cmd->info) { /* <LocationMatch> */
+ if (thiscmd->cmd_data) { /* <LocationMatch> */
r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED);
}
else if (!strcmp(cmd->path, "~")) {
@@ -1044,13 +1046,13 @@
}
old_end_token = cmd->end_token;
- cmd->end_token = cmd->info ? end_locationmatch_section :
end_location_section;
+ cmd->end_token = thiscmd->cmd_data ? end_locationmatch_section :
end_location_section;
errmsg = srm_command_loop (cmd, new_url_conf);
if (errmsg == NULL) {
errmsg = missing_endsection(cmd, 1);
}
cmd->end_token = old_end_token;
- if (errmsg != (cmd->info ? end_locationmatch_section :
end_location_section))
+ if (errmsg != (thiscmd->cmd_data ? end_locationmatch_section :
end_location_section))
return errmsg;
conf = (core_dir_config *)get_module_config(new_url_conf, &core_module);
@@ -1061,7 +1063,7 @@
add_per_url_conf (cmd->server, new_url_conf);
if (*arg != '\0')
- return pstrcat (cmd->pool, "Multiple <", (cmd->info) ? "LocationMatch"
: "Location",
+ return pstrcat (cmd->pool, "Multiple ", thiscmd->name,
"> arguments not (yet) supported.", NULL);
cmd->path = old_path;
@@ -1079,6 +1081,7 @@
core_dir_config *conf;
regex_t *r = NULL;
const char *old_end_token;
+ const command_rec *thiscmd = cmd->cmd;
void *new_file_conf = create_per_dir_config (cmd->pool);
@@ -1092,7 +1095,7 @@
if (!old_path)
cmd->override = OR_ALL|ACCESS_CONF;
- if (cmd->info) { /* <FilesMatch> */
+ if (thiscmd->cmd_data) { /* <FilesMatch> */
r = pregcomp(cmd->pool, cmd->path, REG_EXTENDED|USE_ICASE);
}
else if (!strcmp(cmd->path, "~")) {
@@ -1105,13 +1108,13 @@
}
old_end_token = cmd->end_token;
- cmd->end_token = cmd->info ? end_filesmatch_section : end_files_section;
+ cmd->end_token = thiscmd->cmd_data ? end_filesmatch_section :
end_files_section;
errmsg = srm_command_loop (cmd, new_file_conf);
if (errmsg == NULL) {
errmsg = missing_endsection(cmd, 1);
}
cmd->end_token = old_end_token;
- if (errmsg != (cmd->info ? end_filesmatch_section : end_files_section))
+ if (errmsg != (thiscmd->cmd_data ? end_filesmatch_section :
end_files_section))
return errmsg;
conf = (core_dir_config *)get_module_config(new_file_conf, &core_module);
@@ -1122,7 +1125,7 @@
add_file_conf (c, new_file_conf);
if (*arg != '\0')
- return pstrcat (cmd->pool, "Multiple <", (cmd->info) ? "FilesMatch" :
"Files",
+ return pstrcat (cmd->pool, "Multiple ", thiscmd->name,
"> arguments not (yet) supported.", NULL);
cmd->path = old_path;