X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslurpd%2Fargs.c;h=9c4df43346d534d2d2840488022104bbab6edccd;hb=616d409817888294f748ea657b759edb5a30886a;hp=3a51d53c95f70155ca345028678c004f544163d7;hpb=7e6ad5100c2702b1d56a285bdfb341ddf38c0d76;p=openldap diff --git a/servers/slurpd/args.c b/servers/slurpd/args.c index 3a51d53c95..9c4df43346 100644 --- a/servers/slurpd/args.c +++ b/servers/slurpd/args.c @@ -1,3 +1,8 @@ +/* $OpenLDAP$ */ +/* + * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ /* * Copyright (c) 1996 Regents of the University of Michigan. * All rights reserved. @@ -17,12 +22,12 @@ #include "portable.h" #include -#include +#include #include #include +#include -#include #include #include "slurp.h" @@ -34,11 +39,11 @@ usage( char *name ) { fprintf( stderr, "usage: %s\t[-d debug-level] [-s syslog-level]\n", name ); fprintf( stderr, "\t\t[-f slapd-config-file] [-r replication-log-file]\n" ); -#ifdef HAVE_KERBEROS +#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND fprintf( stderr, "\t\t[-t tmp-dir] [-o] [-k srvtab-file]\n" ); -#else /* HAVE_KERBEROS */ +#else /* LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND */ fprintf( stderr, "\t\t[-t tmp-dir] [-o]\n" ); -#endif /* HAVE_KERBEROS */ +#endif /* LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND */ } @@ -54,7 +59,6 @@ doargs( ) { int i; - extern char *optarg; int rflag = 0; if ( (g->myname = strrchr( argv[0], '/' )) == NULL ) { @@ -63,11 +67,12 @@ doargs( g->myname = strdup( g->myname + 1 ); } - while ( (i = getopt( argc, argv, "hd:f:r:t:k:o" )) != EOF ) { + while ( (i = getopt( argc, argv, "d:f:or:t:" )) != EOF ) { switch ( i ) { -#ifdef LDAP_DEBUG - case 'd': /* turn on debugging */ + case 'd': /* set debug level and 'do not detach' flag */ + g->no_detach = 1; if ( optarg[0] == '?' ) { +#ifdef LDAP_DEBUG printf( "Debug levels:\n" ); printf( "\tLDAP_DEBUG_TRACE\t%d\n", LDAP_DEBUG_TRACE ); @@ -87,38 +92,35 @@ doargs( LDAP_DEBUG_ACL ); printf( "\tLDAP_DEBUG_ANY\t\t%d\n", LDAP_DEBUG_ANY ); + puts( "\tThe -d flag also prevents slurpd from detaching." ); +#endif /* LDAP_DEBUG */ + puts( "\tDebugging is disabled. -d 0 prevents slurpd from detaching." ); return( -1 ); - } else { - ldap_debug = atoi( optarg ); } - break; -#else /* LDAP_DEBUG */ - case 'd': /* can't enable debugging - not built with debug code */ - fprintf( stderr, "must compile with LDAP_DEBUG for debugging\n" ); - break; +#ifdef LDAP_DEBUG + ldap_debug |= atoi( optarg ); +#else /* !LDAP_DEBUG */ + if ( atoi( optarg ) != 0 ) + /* can't enable debugging - not built with debug code */ + fputs( "must compile with LDAP_DEBUG for debugging\n", + stderr ); #endif /* LDAP_DEBUG */ + break; case 'f': /* slapd config file */ g->slapd_configfile = strdup( optarg ); break; + case 'o': + g->one_shot_mode = 1; + break; case 'r': /* slapd replog file */ - strcpy( g->slapd_replogfile, optarg ); + strncpy( g->slapd_replogfile, optarg, + sizeof(g->slapd_replogfile)-1 ); + g->slapd_replogfile[sizeof(g->slapd_replogfile)-1] = '\0'; rflag++; break; case 't': /* dir to use for our copies of replogs */ - g->slurpd_rdir = strdup( optarg ); - break; - case 'k': /* name of kerberos srvtab file */ -#ifdef HAVE_KERBEROS - g->default_srvtab = strdup( optarg ); -#else /* HAVE_KERBEROS */ - fprintf( stderr, "must compile with KERBEROS to use -k option\n" ); -#endif /* HAVE_KERBEROS */ - break; - case 'h': - usage( g->myname ); - return( -1 ); - case 'o': - g->one_shot_mode = 1; + g->slurpd_rdir = (char *)malloc (strlen(optarg) + strlen("/replica") + 1); + sprintf(g->slurpd_rdir, "%s/replica", optarg); break; default: usage( g->myname ); @@ -140,14 +142,15 @@ doargs( sprintf( g->slurpd_status_file, "%s/%s", g->slurpd_rdir, DEFAULT_SLURPD_STATUS_FILE ); + ber_set_option(NULL, LBER_OPT_DEBUG_LEVEL, &ldap_debug); + ldap_set_option(NULL, LDAP_OPT_DEBUG_LEVEL, &ldap_debug); + ldif_debug = ldap_debug; + #ifdef LOG_LOCAL4 openlog( g->myname, OPENLOG_OPTIONS, LOG_LOCAL4 ); -#else +#elif LOG_DEBUG openlog( g->myname, OPENLOG_OPTIONS ); #endif return 0; - } - -