From f0acc0d7bdbb3f24840aec2e179a64c7f8d95f38 Mon Sep 17 00:00:00 2001
From: Quanah Gibson-Mount <quanah@openldap.org>
Date: Sun, 12 Dec 2010 03:14:41 +0000
Subject: [PATCH] ITS#6676

---
 CHANGES                             |  1 +
 contrib/slapd-modules/nssov/nssov.c | 26 ++++++++++++++------------
 2 files changed, 15 insertions(+), 12 deletions(-)

diff --git a/CHANGES b/CHANGES
index 4f17948371..9f28924096 100644
--- a/CHANGES
+++ b/CHANGES
@@ -19,6 +19,7 @@ OpenLDAP 2.4.24 Engineering
 	Fixed slapo-ppolicy don't update opattrs on consumers (ITS#6608)
 	Fixed slapo-sssvlv initialization (ITS#6649)
 	Fixed slapo-syncprov to send error if consumer is newer (ITS#6606)
+	Fixed contrib/nssov to only close socket on shutdown (ITS#6676)
 	Documentation
 		admin24 guide typo fixes (ITS#6609)
 
diff --git a/contrib/slapd-modules/nssov/nssov.c b/contrib/slapd-modules/nssov/nssov.c
index b5ffeb64aa..0687e98d07 100644
--- a/contrib/slapd-modules/nssov/nssov.c
+++ b/contrib/slapd-modules/nssov/nssov.c
@@ -879,18 +879,20 @@ nssov_db_close(
 	slap_overinst *on = (slap_overinst *)be->bd_info;
 	nssov_info *ni = on->on_bi.bi_private;
 
-	/* close socket if it's still in use */
-	if (ni->ni_socket >= 0);
-	{
-		if (close(ni->ni_socket))
-			Debug( LDAP_DEBUG_ANY,"problem closing server socket (ignored): %s",strerror(errno),0,0);
-		ni->ni_socket = -1;
-	}
-	/* remove existing named socket */
-	if (unlink(NSLCD_SOCKET)<0)
-	{
-		Debug( LDAP_DEBUG_TRACE,"unlink() of "NSLCD_SOCKET" failed (ignored): %s",
-			strerror(errno),0,0);
+	if ( slapMode & SLAP_SERVER_MODE ) {
+		/* close socket if it's still in use */
+		if (ni->ni_socket >= 0);
+		{
+			if (close(ni->ni_socket))
+				Debug( LDAP_DEBUG_ANY,"problem closing server socket (ignored): %s",strerror(errno),0,0);
+			ni->ni_socket = -1;
+		}
+		/* remove existing named socket */
+		if (unlink(NSLCD_SOCKET)<0)
+		{
+			Debug( LDAP_DEBUG_TRACE,"unlink() of "NSLCD_SOCKET" failed (ignored): %s",
+				strerror(errno),0,0);
+		}
 	}
 }
 
-- 
GitLab