randy       97/01/12 12:50:31

  Modified:    src       CHANGES mod_info.c
  Log:
  Hah, *squish*!  mod_info.c is making the assumption that the config
  files are relative to ServerRoot.  Looking at the /serv-info, it's
  clear that www.apache.org's server is started with -f and an
  absolute pathname.
  Reviewed by: Randy Terbush, Rasmus Lerdorf
  Submitted by: Ken the Rodent of Unusual Size
  
  Revision  Changes    Path
  1.122     +3 -0      apache/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /export/home/cvs/apache/src/CHANGES,v
  retrieving revision 1.121
  retrieving revision 1.122
  diff -C3 -r1.121 -r1.122
  *** CHANGES   1997/01/12 20:22:16     1.121
  --- CHANGES   1997/01/12 20:50:29     1.122
  ***************
  *** 1,5 ****
  --- 1,8 ----
    Changes with Apache 1.2b5
    
  +   *) mod_info assumed that the config files were relative to ServerRoot.
  +      [Ken the Rodent]
  + 
      *) CGI scripts called as an error document resulting from failed
         CGI execution would hang waiting for POST'ed data. [Rob Hartill]
    
  
  
  
  1.9       +20 -10    apache/src/mod_info.c
  
  Index: mod_info.c
  ===================================================================
  RCS file: /export/home/cvs/apache/src/mod_info.c,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -C3 -r1.8 -r1.9
  *** mod_info.c        1997/01/01 18:10:35     1.8
  --- mod_info.c        1997/01/12 20:50:29     1.9
  ***************
  *** 103,116 ****
        return(ret);
    }
    
  ! mod_info_config_lines *mod_info_load_config(pool *p, char *filename) {
        char s[MAX_STRING_LEN];
        FILE *fp;
        mod_info_config_lines *new, *ret=NULL, *prev=NULL;
  !     char *t,*tt,o;
        
        fp = pfopen(p,filename,"r");
  !     if(!fp) return NULL;
        while(!cfg_getline(s,MAX_STRING_LEN,fp)) {
                if(*s=='#') continue; /* skip comments */
                new = palloc(p,sizeof(struct mod_info_config_lines));
  --- 103,126 ----
        return(ret);
    }
    
  ! mod_info_config_lines *mod_info_load_config(pool *p, char *filename, 
request_rec *r) {
        char s[MAX_STRING_LEN];
        FILE *fp;
        mod_info_config_lines *new, *ret=NULL, *prev=NULL;
  !     char *t,*tt,o, *msg;
        
        fp = pfopen(p,filename,"r");
  !     if(!fp) {
  !         msg = pstrcat
  !                 (
  !                     r->pool,
  !                     "mod_info: couldn't open config file ",
  !                     filename,
  !                     NULL
  !                 );
  !         log_error (msg, r->server);
  !         return NULL;
  !     }
        while(!cfg_getline(s,MAX_STRING_LEN,fp)) {
                if(*s=='#') continue; /* skip comments */
                new = palloc(p,sizeof(struct mod_info_config_lines));
  ***************
  *** 234,240 ****
    
    int display_info(request_rec *r) {
        module *modp = NULL;
  !     char buf[256];
        command_rec *cmd=NULL;
        handler_rec *hand=NULL;
        server_rec *serv = r->server;
  --- 244,250 ----
    
    int display_info(request_rec *r) {
        module *modp = NULL;
  !     char buf[256], *cfname;
        command_rec *cmd=NULL;
        handler_rec *hand=NULL;
        server_rec *serv = r->server;
  ***************
  *** 267,278 ****
        rputs("<html><head><title>Server Information</title></head>\n",r);
        rputs("<body><h1 align=center>Apache Server Information</h1>\n",r);
        if(!r->args || strcasecmp(r->args,"list")) {
  !             sprintf(buf,"%s/%s",server_root,server_confname);
  !             mod_info_cfg_httpd = mod_info_load_config(r->pool,buf);
  !             sprintf(buf,"%s/%s",server_root,serv->srm_confname);
  !             mod_info_cfg_srm = mod_info_load_config(r->pool,buf);
  !             sprintf(buf,"%s/%s",server_root,serv->access_confname);
  !             mod_info_cfg_access = mod_info_load_config(r->pool,buf);
                if(!r->args) {
                        rputs("<tt><a href=\"#server\">Server Settings</a>, 
",r);
                        for(modp = top_module; modp; modp = modp->next) {
  --- 277,288 ----
        rputs("<html><head><title>Server Information</title></head>\n",r);
        rputs("<body><h1 align=center>Apache Server Information</h1>\n",r);
        if(!r->args || strcasecmp(r->args,"list")) {
  !             cfname = server_root_relative (r->pool, server_confname);
  !             mod_info_cfg_httpd = mod_info_load_config (r->pool, cfname, r);
  !             cfname = server_root_relative (r->pool, serv->srm_confname);
  !             mod_info_cfg_srm = mod_info_load_config(r->pool, cfname, r);
  !             cfname = server_root_relative (r->pool, serv->access_confname);
  !             mod_info_cfg_access = mod_info_load_config (r->pool, cfname, r);
                if(!r->args) {
                        rputs("<tt><a href=\"#server\">Server Settings</a>, 
",r);
                        for(modp = top_module; modp; modp = modp->next) {
  
  
  

Reply via email to