]> git.sur5r.net Git - openldap/commitdiff
More for prev commit - none of this is necessary if no_detach is true
authorHoward Chu <hyc@openldap.org>
Wed, 9 Mar 2011 18:09:35 +0000 (18:09 +0000)
committerHoward Chu <hyc@openldap.org>
Wed, 9 Mar 2011 18:09:35 +0000 (18:09 +0000)
servers/slapd/main.c

index 8298f9a3c7505c3d5f334369cec5b8e05ff17f9b..a43c8f84cae1e3d5d19a6d58270193f2b7ad6bd6 100644 (file)
@@ -907,23 +907,25 @@ unhandled_option:;
 #endif
 
 #ifndef HAVE_WINSOCK
-       if ( lutil_pair( waitfds ) < 0 ) {
-               Debug( LDAP_DEBUG_ANY,
-                       "main: lutil_pair failed: %d\n",
-                       0, 0, 0 );
-               rc = 1;
-               goto destroy;
-       }
-       pid = lutil_detach( no_detach, 0 );
-       if ( pid ) {
-               char buf[4];
-               rc = EXIT_SUCCESS;
-               close( waitfds[1] );
-               if ( read( waitfds[0], buf, 1 ) != 1 )
-                       rc = EXIT_FAILURE;
-               _exit( rc );
-       } else {
-               close( waitfds[0] );
+       if ( !no_detach ) {
+               if ( lutil_pair( waitfds ) < 0 ) {
+                       Debug( LDAP_DEBUG_ANY,
+                               "main: lutil_pair failed: %d\n",
+                               0, 0, 0 );
+                       rc = 1;
+                       goto destroy;
+               }
+               pid = lutil_detach( no_detach, 0 );
+               if ( pid ) {
+                       char buf[4];
+                       rc = EXIT_SUCCESS;
+                       close( waitfds[1] );
+                       if ( read( waitfds[0], buf, 1 ) != 1 )
+                               rc = EXIT_FAILURE;
+                       _exit( rc );
+               } else {
+                       close( waitfds[0] );
+               }
        }
 #endif /* HAVE_WINSOCK */
 
@@ -996,8 +998,10 @@ unhandled_option:;
        Debug( LDAP_DEBUG_ANY, "slapd starting\n", 0, 0, 0 );
 
 #ifndef HAVE_WINSOCK
-       write( waitfds[1], "1", 1 );
-       close( waitfds[1] );
+       if ( !no_detach ) {
+               write( waitfds[1], "1", 1 );
+               close( waitfds[1] );
+       }
 #endif
 
 #ifdef HAVE_NT_EVENT_LOG