]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/main.c
Partial revert of f30269f5d2e4bb5ee7486fe6542078d1b59dba6d
[openldap] / servers / slapd / main.c
index c2d055540a9dcda1e8a2e77de5212181a9c7310f..6dd6da0cddd8258d6318b92d0c8454f541a9596a 100644 (file)
@@ -1,7 +1,7 @@
 /* $OpenLDAP$ */
 /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
  *
- * Copyright 1998-2011 The OpenLDAP Foundation.
+ * Copyright 1998-2012 The OpenLDAP Foundation.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -345,9 +345,6 @@ usage( char *name )
 #endif
                "\t-V\t\tprint version info (-VV exit afterwards, -VVV print\n"
                "\t\t\tinfo about static overlays and backends)\n"
-#ifndef HAVE_WINSOCK
-               "\t-w Wait for database startup before exiting\n"
-#endif
     );
 }
 
@@ -372,7 +369,7 @@ int main( int argc, char **argv )
 #endif
        
 #ifndef HAVE_WINSOCK
-       int pid, wait_for_start = 0, waitfds[2];
+       int pid, waitfds[2];
 #endif
        int g_argc = argc;
        char **g_argv = argv;
@@ -477,9 +474,6 @@ int main( int argc, char **argv )
 #endif
 #if defined(HAVE_SETUID) && defined(HAVE_SETGID)
                                "u:g:"
-#endif
-#ifndef HAVE_WINSOCK
-                               "w"
 #endif
                             )) != EOF ) {
                switch ( i ) {
@@ -648,12 +642,6 @@ int main( int argc, char **argv )
                        version++;
                        break;
 
-#ifndef HAVE_WINSOCK
-               case 'w':
-                       wait_for_start = 1;
-                       break;
-#endif
-
                case 'T':
                        if ( firstopt == 0 ) {
                                fprintf( stderr, "warning: \"-T %s\" "
@@ -918,7 +906,7 @@ unhandled_option:;
 #endif
 
 #ifndef HAVE_WINSOCK
-       if ( wait_for_start ) {
+       if ( !no_detach ) {
                if ( lutil_pair( waitfds ) < 0 ) {
                        Debug( LDAP_DEBUG_ANY,
                                "main: lutil_pair failed: %d\n",
@@ -926,19 +914,15 @@ unhandled_option:;
                        rc = 1;
                        goto destroy;
                }
-       }
-       pid = lutil_detach( no_detach, 0 );
-       if ( pid ) {
-               rc = EXIT_SUCCESS;
-               if ( wait_for_start ) {
+               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 {
-               if ( wait_for_start ) {
+                       _exit( rc );
+               } else {
                        close( waitfds[0] );
                }
        }
@@ -1013,7 +997,7 @@ unhandled_option:;
        Debug( LDAP_DEBUG_ANY, "slapd starting\n", 0, 0, 0 );
 
 #ifndef HAVE_WINSOCK
-       if ( wait_for_start ) {
+       if ( !no_detach ) {
                write( waitfds[1], "1", 1 );
                close( waitfds[1] );
        }