p4-projects@freebsd.org
[Top] [All Lists]

PERFORCE change 114038 for review

Subject: PERFORCE change 114038 for review
From: Michael Bushkov
Date: Mon, 5 Feb 2007 10:25:27 GMT
http://perforce.freebsd.org/chv.cgi?CH=114038

Change 114038 by bushman@bushman_nss_ldap_cached on 2007/02/05 10:24:49

        nss_ldap now works correctly, when the processor forks()

Affected files ...

.. //depot/projects/soc2006/nss_ldap_cached/src/lib/nss_ldap/ldapconn.c#16 edit

Differences ...

==== //depot/projects/soc2006/nss_ldap_cached/src/lib/nss_ldap/ldapconn.c#16 
(text+ko) ====

@@ -100,7 +100,11 @@
 {
        struct nss_ldap_connection_error conn_err;
        int dummy_fd, backup_fd, rv;
-       
+
+       /* 
+        * If we can't get the socket from ldap connection, then don't
+        * close it gracefully and just ignore it.
+        */     
        if (conn->sock_fd == -1)
                return (NSS_LDAP_CONNECTION_ERROR);
        
@@ -114,7 +118,7 @@
        if (dummy_fd != conn->sock_fd) {
                backup_fd = dup(conn->sock_fd);
                dup2(dummy_fd, conn->sock_fd);  
-               close (conn->sock_fd);
+               close(conn->sock_fd);
        }
        memset(&conn_err, 0, sizeof(struct nss_ldap_connection_error));
        rv = __nss_ldap_disconnect(&__nss_ldap_conf->connection_method, conn, 
@@ -138,13 +142,9 @@
        struct nss_ldap_connection_error conn_err_;
        int rv;
        
-       if (check_connection_socket(conn) != 0) {
+       if (check_connection_socket(conn) != 0 || conn->last_pid != getpid()) {
                rv = close_lost_connection(conn);
                return (NSS_LDAP_CONNECTION_ERROR);
-       } else if (conn->last_pid != getpid()) {
-               
(void)__nss_ldap_disconnect(&__nss_ldap_conf->connection_method, 
-               conn, __nss_ldap_conf, &conn_err_);
-               return (NSS_LDAP_CONNECTION_ERROR);             
        } else
                return (NSS_LDAP_SUCCESS);
 }
_______________________________________________
p4-projects@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/p4-projects
To unsubscribe, send any mail to "p4-projects-unsubscribe@xxxxxxxxxxx"

<Prev in Thread] Current Thread [Next in Thread>
  • PERFORCE change 114038 for review, Michael Bushkov <=