]> granicus.if.org Git - apache/commitdiff
Fix mod_ldap to open an existing shared memory file should one
authorGraham Leggett <minfrin@apache.org>
Tue, 21 Jan 2003 10:46:57 +0000 (10:46 +0000)
committerGraham Leggett <minfrin@apache.org>
Tue, 21 Jan 2003 10:46:57 +0000 (10:46 +0000)
already exist.
PR: 12757
Obtained from:
Submitted by: Scooter Morris <scooter@gene.com>
Reviewed by: Graham Leggett

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@98416 13f79535-47bb-0310-9956-ffa450edef68

CHANGES
modules/experimental/util_ldap_cache.c

diff --git a/CHANGES b/CHANGES
index 5ee2ea605d3353d48677776e3638d274fc597255..e3161037b316d979ab8947f53637e5c3bde8a417 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -65,6 +65,10 @@ Changes with Apache 2.1.0-dev
 
 Changes with Apache 2.0.45
 
+  *) Fix mod_ldap to open an existing shared memory file should one
+     already exist. PR 12757. [Scooter Morris <scooter@gene.com>, 
+     Graham Leggett]
+
   *) Fix the ulimit command used by apachectl on Tru64.  PR 13609.
      [Joseph Senulis <Joseph.Senulis@dnr.state.wi.us>, Jeff Trawick]
 
index 47b0ff17ae4bf0a21a5349165eb03142bd9c31c7..79fc6bea330e16d5cc33e677de72d2b1a6ad3bcd 100644 (file)
@@ -66,7 +66,7 @@
 
 #ifdef APU_HAS_LDAP
 
-
+#define MODLDAP_SHMEM_CACHE "/tmp/mod_ldap_cache"
 
 
 /* ------------------------------------------------------------------ */
@@ -295,7 +295,14 @@ apr_status_t util_ldap_cache_init(apr_pool_t *pool, apr_size_t reqsize)
 #if APR_HAS_SHARED_MEMORY
     apr_status_t result;
 
-    result = apr_shm_create(&util_ldap_shm, reqsize, "/tmp/ldap_cache", pool);
+    result = apr_shm_create(&util_ldap_shm, reqsize, MODLDAP_SHMEM_CACHE, pool);
+    if (result == EEXIST) {
+        /*
+         * The cache could have already been created (i.e. we may be a child process).  See
+         * if we can attach to the existing shared memory
+         */
+        result = apr_shm_attach(&util_ldap_shm, MODLDAP_SHMEM_CACHE, pool);
+    } 
     if (result != APR_SUCCESS) {
         return result;
     }