]> granicus.if.org Git - apache/commitdiff
fix SSL_X509_INFO_load_path so SSLProxyMachineCertificatePath works
authorDoug MacEachern <dougm@apache.org>
Tue, 2 Apr 2002 22:07:09 +0000 (22:07 +0000)
committerDoug MacEachern <dougm@apache.org>
Tue, 2 Apr 2002 22:07:09 +0000 (22:07 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@94406 13f79535-47bb-0310-9956-ffa450edef68

modules/ssl/ssl_util_ssl.c

index 030fac299d1a73bb51c17069e45af6da22685548..b3e866fd5ac6d8018ecf492466c9e90a3407db0c 100644 (file)
@@ -444,8 +444,13 @@ BOOL SSL_X509_INFO_load_path(apr_pool_t *ptemp,
                              STACK_OF(X509_INFO) *sk,
                              const char *pathname)
 {
+    /* XXX: this dir read code is exactly the same as that in
+     * ssl_engine_init.c, only the call to handle the fullname is different,
+     * should fold the duplication.
+     */
     apr_dir_t *dir;
     apr_finfo_t dirent;
+    apr_int32_t finfo_flags = APR_FINFO_MIN|APR_FINFO_NAME;
     const char *fullname;
     BOOL ok = FALSE;
 
@@ -453,15 +458,15 @@ BOOL SSL_X509_INFO_load_path(apr_pool_t *ptemp,
         return FALSE;
     }
 
-    while ((apr_dir_read(&dirent, APR_FINFO_DIRENT, dir)) == APR_SUCCESS) {
+    while ((apr_dir_read(&dirent, finfo_flags, dir)) == APR_SUCCESS) {
+        if (dirent.filetype == APR_DIR) {
+            continue; /* don't try to load directories */
+        }
+
         fullname = apr_pstrcat(ptemp,
                                pathname, "/", dirent.name,
                                NULL);
 
-        if (dirent.filetype != APR_REG) {
-            continue;
-        }
-
         if (SSL_X509_INFO_load_file(ptemp, sk, fullname)) {
             ok = TRUE;
         }