bjh         99/11/02 07:15:11

  Modified:    src/include httpd.h
               src/main http_config.c util.c
               src/modules/standard mod_auth.c mod_imap.c mod_mime.c
  Log:
  De-errno ap_pcfg_openfile().
  
  Revision  Changes    Path
  1.12      +1 -1      apache-2.0/src/include/httpd.h
  
  Index: httpd.h
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/include/httpd.h,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- httpd.h   1999/10/07 18:13:11     1.11
  +++ httpd.h   1999/11/02 15:15:04     1.12
  @@ -1004,7 +1004,7 @@
   } configfile_t;
   
   /* Open a configfile_t as FILE, return open configfile_t struct pointer */
  -API_EXPORT(configfile_t *) ap_pcfg_openfile(ap_context_t *p, const char 
*name);
  +API_EXPORT(ap_status_t) ap_pcfg_openfile(configfile_t **, ap_context_t *p, 
const char *name);
   
   /* Allocate a configfile_t handle with user defined functions and params */
   API_EXPORT(configfile_t *) ap_pcfg_open_custom(ap_context_t *p, const char 
*descr,
  
  
  
  1.16      +6 -4      apache-2.0/src/main/http_config.c
  
  Index: http_config.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/main/http_config.c,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- http_config.c     1999/10/20 12:49:54     1.15
  +++ http_config.c     1999/11/02 15:15:06     1.16
  @@ -1040,8 +1040,8 @@
       parms.server = s;
       parms.override = (RSRC_CONF | OR_ALL) & ~(OR_AUTHCFG | OR_LIMIT);
   
  -    if (!(parms.config_file = ap_pcfg_openfile(p,fname))) {
  -     perror("fopen");
  +    if (ap_pcfg_openfile(&parms.config_file, p, fname) != APR_SUCCESS) {
  +        /* ZZZ  use ap_strerror() once it exists to print an error message */
        fprintf(stderr, "%s: could not open document config file %s\n",
                ap_server_argv0, fname);
        exit(1);
  @@ -1070,6 +1070,7 @@
       const struct htaccess_result *cache;
       struct htaccess_result *new;
       void *dc = NULL;
  +    ap_status_t status;
   
   /* firstly, search cache */
       for (cache = r->htaccess; cache != NULL; cache = cache->next)
  @@ -1091,8 +1092,9 @@
       while (access_name[0]) {
           filename = ap_make_full_path(r->pool, d,
                                        ap_getword_conf(r->pool, &access_name));
  +        status = ap_pcfg_openfile(&f, r->pool, filename);
   
  -        if ((f = ap_pcfg_openfile(r->pool, filename)) != NULL) {
  +        if (status == APR_SUCCESS) {
   
               dc = ap_create_per_dir_config(r->pool);
   
  @@ -1110,7 +1112,7 @@
               *result = dc;
               break;
           }
  -        else if (errno != ENOENT && errno != ENOTDIR) {
  +        else if (status != APR_ENOENT && status != APR_ENOTDIR) {
               ap_log_rerror(APLOG_MARK, APLOG_CRIT, errno, r,
                             "%s pcfg_openfile: unable to check htaccess file, "
                             "ensure it is readable",
  
  
  
  1.16      +13 -15    apache-2.0/src/main/util.c
  
  Index: util.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/main/util.c,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- util.c    1999/10/20 12:49:56     1.15
  +++ util.c    1999/11/02 15:15:07     1.16
  @@ -855,41 +855,40 @@
   }
   
   /* Open a configfile_t as FILE, return open configfile_t struct pointer */
  -API_EXPORT(configfile_t *) ap_pcfg_openfile(ap_context_t *p, const char 
*name)
  +API_EXPORT(ap_status_t) ap_pcfg_openfile(configfile_t **ret_cfg, 
ap_context_t *p, const char *name)
   {
       configfile_t *new_cfg;
       ap_file_t *file;
  -    int saved_errno;
       ap_status_t stat;
       ap_filetype_e type;
   
       if (name == NULL) {
           ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, 0, NULL,
                  "Internal error: pcfg_openfile() called with NULL filename");
  -        return NULL;
  +        return APR_EBADF;
       }
   
       if (!ap_os_is_filename_valid(name)) {
           ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, 0, NULL,
                       "Access to config file %s denied: not a valid filename",
                       name);
  -     errno = EACCES;
  -        return NULL;
  +        return APR_EACCES;
       }
  - 
  +
       stat = ap_open(&file, name, APR_READ | APR_BUFFERED, APR_OS_DEFAULT, p);
   #ifdef DEBUG
  -    saved_errno = errno;
       ap_log_error(APLOG_MARK, APLOG_DEBUG | APLOG_NOERRNO, NULL,
                   "Opening config file %s (%s)",
                   name, (stat != APR_SUCCESS) ? strerror(errno) : 
"successful");
  -    errno = saved_errno;
   #endif
  +    if (stat != APR_SUCCESS)
  +        return stat;
  +
  +    stat = ap_get_filetype(&type, file);
       if (stat != APR_SUCCESS)
  -        return NULL;
  +        return stat;
   
  -    if (ap_get_filetype(&type, file) == APR_SUCCESS &&
  -        type != APR_REG &&
  +    if (type != APR_REG &&
   #if defined(WIN32) || defined(OS2)
           !(strcasecmp(name, "nul") == 0 ||
             (strlen(name) >= 4 &&
  @@ -897,13 +896,11 @@
   #else
           strcmp(name, "/dev/null") != 0) {
   #endif /* WIN32 || OS2 */
  -     saved_errno = errno;
           ap_log_error(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, 0, NULL,
                       "Access to file %s denied by server: not a regular file",
                       name);
           ap_close(file);
  -     errno = saved_errno;
  -        return NULL;
  +        return APR_EBADF;
       }
   
       new_cfg = ap_palloc(p, sizeof(*new_cfg));
  @@ -913,7 +910,8 @@
       new_cfg->getstr = (void *(*)(void *, size_t, void *)) cfg_getstr;
       new_cfg->close = (int (*)(void *)) cfg_close;
       new_cfg->line_number = 0;
  -    return new_cfg;
  +    *ret_cfg = new_cfg;
  +    return APR_SUCCESS;
   }
   
   
  
  
  
  1.10      +5 -3      apache-2.0/src/modules/standard/mod_auth.c
  
  Index: mod_auth.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/standard/mod_auth.c,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- mod_auth.c        1999/10/20 12:50:07     1.9
  +++ mod_auth.c        1999/11/02 15:15:08     1.10
  @@ -122,9 +122,10 @@
       configfile_t *f;
       char l[MAX_STRING_LEN];
       const char *rpw, *w;
  +    ap_status_t status;
   
  -    if (!(f = ap_pcfg_openfile(r->pool, auth_pwfile))) {
  -     ap_log_rerror(APLOG_MARK, APLOG_ERR, errno, r,
  +    if ((status = ap_pcfg_openfile(&f, r->pool, auth_pwfile)) != 
APR_SUCCESS) {
  +     ap_log_rerror(APLOG_MARK, APLOG_ERR, status, r,
                    "Could not open password file: %s", auth_pwfile);
        return NULL;
       }
  @@ -150,8 +151,9 @@
       ap_context_t *sp;
       char l[MAX_STRING_LEN];
       const char *group_name, *ll, *w;
  +    ap_status_t status;
   
  -    if (!(f = ap_pcfg_openfile(p, grpfile))) {
  +    if ((status = ap_pcfg_openfile(&f, p, grpfile)) != APR_SUCCESS) {
   /*add?       aplog_error(APLOG_MARK, APLOG_ERR, NULL,
                    "Could not open group file: %s", grpfile);*/
        return NULL;
  
  
  
  1.7       +3 -2      apache-2.0/src/modules/standard/mod_imap.c
  
  Index: mod_imap.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/standard/mod_imap.c,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- mod_imap.c        1999/10/20 12:50:07     1.6
  +++ mod_imap.c        1999/11/02 15:15:08     1.7
  @@ -603,6 +603,7 @@
       char *mapdflt;
       char *closest = NULL;
       double closest_yet = -1;
  +    ap_status_t status;
   
       double testpoint[2];
       double pointarray[MAXVERTS + 1][2];
  @@ -624,9 +625,9 @@
        return DECLINED;
       }
   
  -    imap = ap_pcfg_openfile(r->pool, r->filename);
  +    status = ap_pcfg_openfile(&imap, r->pool, r->filename);
   
  -    if (!imap) {
  +    if (status != APR_SUCCESS) {
           return NOT_FOUND;
       }
   
  
  
  
  1.5       +3 -2      apache-2.0/src/modules/standard/mod_mime.c
  
  Index: mod_mime.c
  ===================================================================
  RCS file: /home/cvs/apache-2.0/src/modules/standard/mod_mime.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- mod_mime.c        1999/10/20 12:50:08     1.4
  +++ mod_mime.c        1999/11/02 15:15:08     1.5
  @@ -245,14 +245,15 @@
       char l[MAX_STRING_LEN];
       int x;
       const char *types_confname = ap_get_module_config(s->module_config, 
&mime_module);
  +    ap_status_t status;
   
       if (!types_confname)
           types_confname = TYPES_CONFIG_FILE;
   
       types_confname = ap_server_root_relative(p, types_confname);
   
  -    if (!(f = ap_pcfg_openfile(p, types_confname))) {
  -        ap_log_error(APLOG_MARK, APLOG_ERR, errno, s,
  +    if ((status = ap_pcfg_openfile(&f, p, types_confname)) != APR_SUCCESS) {
  +        ap_log_error(APLOG_MARK, APLOG_ERR, status, s,
                     "could not open mime types log file %s.", types_confname);
           exit(1);
       }
  
  
  

Reply via email to