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;
  
  
  

Reply via email to