]> git.sur5r.net Git - openldap/blobdiff - servers/ldapd/main.c
Some gcc -W... cleanup
[openldap] / servers / ldapd / main.c
index f5f421e512b35f1d77bfc803e1386f8283fa4710..9ef964106cb94780fa8a673f8aa4e5792edbc60b 100644 (file)
 #include <ac/unistd.h>
 #include <ac/wait.h>
 
+#ifdef LDAP_PROCTITLE
+#include <ac/setproctitle.h>
+#endif
+
 #include <quipu/commonarg.h>
 #include <quipu/ds_error.h>
 
 #include "lber.h"
+#include "../../libraries/liblber/lber-int.h"  /* get struct sockbuf */
 #include "ldap.h"
 #include "common.h"
+#include "lutil.h"             /* Get lutil_detach() */
 
 #ifdef HAVE_TCPD
 #include <tcpd.h>
@@ -44,11 +50,11 @@ int deny_severity = LOG_NOTICE;
 #endif /* TCP_WRAPPERS */
 
 void log_and_exit();
-static set_socket();
-static do_queries();
+static int     set_socket();
+static void    do_queries();
 static RETSIGTYPE wait4child();
 #ifdef LDAP_CONNECTIONLESS
-static udp_init();
+static int     udp_init();
 #endif
 
 #ifdef LDAP_DEBUG
@@ -79,8 +85,8 @@ int   RunFromInetd = 0;
 
 extern char Versionstr[];
 
-static usage( name )
-char   *name;
+static void
+usage( char *name )
 {
        fprintf( stderr, "usage: %s [-d debuglvl] [-p port] [-l] [-c dsa] [-r referraltimeout]", name );
 #ifdef LDAP_CONNECTIONLESS
@@ -95,6 +101,7 @@ char *name;
        fprintf( stderr, "\n" );
 }
 
+int
 main (argc, argv)
 int    argc;
 char   **argv;
@@ -113,10 +120,8 @@ char       **argv;
        int                     dsapargc;
        char                    **dsapargv;
        RETSIGTYPE                      wait4child();
-#ifndef NOSETPROCTITLE
+#ifdef LDAP_PROCTITLE
        char                    title[80];
-       extern char             **Argv;
-       extern int              Argc;
 #endif
        extern char             *optarg;
        extern int              optind;
@@ -243,7 +248,7 @@ char        **argv;
        }
 #endif /* FD_SETSIZE */
 
-#ifndef NOSETPROCTITLE
+#if defined(LDAP_PROCTITLE) && !defined( HAVE_SETPROCTITLE )
        /* for setproctitle */
        Argv = argv;
        Argc = argc;
@@ -260,11 +265,15 @@ char      **argv;
         * that have exited
         */
        if (!RunFromInetd) {
-#ifndef NOSETPROCTITLE
+#ifdef LDAP_PROCTITLE
                setproctitle( "initializing" );
 #endif
 #ifndef VMS
-               (void) detach();
+#  ifdef LDAP_DEBUG
+               lutil_detach( ldap_debug, 1 );
+#  else
+               lutil_detach( 0, 1 );
+#  endif
 #endif
                (void) SIGNAL( SIGCHLD, (void *) wait4child );
                (void) SIGNAL( SIGINT, (void *) log_and_exit );
@@ -299,7 +308,7 @@ char        **argv;
        (void) get_syntaxes();
        if (RunFromInetd) {
                len = sizeof( socktype );
-               getsockopt( ns, SOL_SOCKET, SO_TYPE, &socktype, &len );
+               getsockopt( ns, SOL_SOCKET, SO_TYPE, (char *)&socktype, &len );
                if ( socktype == SOCK_DGRAM ) {
 #ifdef LDAP_CONNECTIONLESS
                        Debug( LDAP_DEBUG_ARGS,
@@ -330,7 +339,7 @@ char        **argv;
                                    inet_ntoa( from.sin_addr ) );
                        }
 
-#ifndef NOSETPROCTITLE
+#ifdef LDAP_PROCTITLE
                        sprintf( title, "%s %d\n", hp == NULL ?
                            inet_ntoa( from.sin_addr ) : hp->h_name, myport );
                        setproctitle( title );
@@ -355,7 +364,7 @@ char        **argv;
         * if we are doing CLDAP as well, handle those requests on the fly
         */
 
-#ifndef NOSETPROCTITLE
+#ifdef LDAP_PROCTITLE
 #ifdef LDAP_CONNECTIONLESS
         sprintf( title, "listening %s/%s %d", do_tcp ? "tcp" : "",
             do_udp ? "udp" : "", myport );
@@ -436,7 +445,7 @@ char        **argv;
 #ifdef VMS
                /* This is for debug on terminal on VMS */
                close( tcps );
-#ifndef NOSETPROCTITLE
+#ifdef LDAP_PROCTITLE
                setproctitle( hp == NULL ? inet_ntoa( from.sin_addr ) :
                    hp->h_name );
 #endif
@@ -450,7 +459,7 @@ char        **argv;
                switch( pid = fork() ) {
                case 0:         /* child */
                        close( tcps );
-#ifndef NOSETPROCTITLE
+#ifdef LDAP_PROCTITLE
                         sprintf( title, "%s (%d)\n", hp == NULL ?
                                inet_ntoa( from.sin_addr ) : hp->h_name,
                                myport );
@@ -482,14 +491,14 @@ char      **argv;
        /* NOT REACHED */
 }
 
-static
+static void
 do_queries(
     int        clientsock,
     int        udp             /* is this a UDP (CLDAP) request? */
 )
 {
        fd_set          readfds;
-       int             rc, i;
+       int             rc;
        struct timeval  timeout;
        Sockbuf         sb;
 #ifdef LDAP_CONNECTIONLESS
@@ -538,6 +547,7 @@ do_queries(
 
 #ifdef LDAP_DEBUG
                if ( ldap_debug & LDAP_DEBUG_CONNS ) {
+                       int i;
                        Debug( LDAP_DEBUG_CONNS, "FDLIST:", 0, 0, 0 );
                        for ( i = 0; i < dtblsize; i++ ) {
                                if ( FD_ISSET( i, &readfds ) ) {
@@ -596,7 +606,8 @@ do_queries(
        /* NOT REACHED */
 }
 
-static set_socket(
+static int
+set_socket(
     int        port,
     int        udp     /* UDP port? */
 )