X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslurpd%2Fargs.c;h=76b3cb8b6272a44a5c0d524c3a76a2a07e5c7acd;hb=65efd6a185e0368bb213db12e5fa6ac82013fac8;hp=ff28e0bb4f215ef6c9460bad6b1a5f05a04eb134;hpb=32bdecbb5fb9fc8bb9163574fee6e6ef40a6cbc6;p=openldap diff --git a/servers/slurpd/args.c b/servers/slurpd/args.c index ff28e0bb4f..76b3cb8b62 100644 --- a/servers/slurpd/args.c +++ b/servers/slurpd/args.c @@ -1,4 +1,8 @@ /* $OpenLDAP$ */ +/* + * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. + * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + */ /* * Copyright (c) 1996 Regents of the University of Michigan. * All rights reserved. @@ -24,7 +28,6 @@ #include #include -#include #include #include "slurp.h" @@ -58,13 +61,13 @@ doargs( int i; int rflag = 0; - if ( (g->myname = strrchr( argv[0], '/' )) == NULL ) { + if ( (g->myname = strrchr( argv[0], LDAP_DIRSEP[0] )) == NULL ) { g->myname = strdup( argv[0] ); } else { 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 ) { case 'd': /* set debug level and 'do not detach' flag */ g->no_detach = 1; @@ -106,27 +109,20 @@ doargs( case 'f': /* slapd config file */ g->slapd_configfile = strdup( optarg ); break; - case 'r': /* slapd replog file */ - strcpy( g->slapd_replogfile, optarg ); - rflag++; - break; - case 't': /* dir to use for our copies of replogs */ - g->slurpd_rdir = (char *)malloc (strlen(optarg) + strlen("/replica") + 1); - sprintf(g->slurpd_rdir, "%s/replica", optarg); - break; - case 'k': /* name of kerberos srvtab file */ -#ifdef LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND - g->default_srvtab = strdup( optarg ); -#else /* LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND */ - fprintf( stderr, "must compile with KERBEROS to use -k option\n" ); -#endif /* LDAP_API_FEATURE_X_OPENLDAP_V2_KBIND */ - break; - case 'h': - usage( g->myname ); - return( -1 ); case 'o': g->one_shot_mode = 1; break; + case 'r': /* slapd replog file */ + snprintf( g->slapd_replogfile, sizeof g->slapd_replogfile, + "%s", optarg ); + rflag++; + break; + case 't': { /* dir to use for our copies of replogs */ + size_t sz; + g->slurpd_rdir = (char *)malloc (sz = (strlen(optarg) + sizeof("/replica"))); + snprintf(g->slurpd_rdir, sz, + "%s" LDAP_DIRSEP "replica", optarg); + } break; default: usage( g->myname ); return( -1 ); @@ -140,11 +136,13 @@ doargs( } /* Set location/name of our private copy of the slapd replog file */ - sprintf( g->slurpd_replogfile, "%s/%s", g->slurpd_rdir, + snprintf( g->slurpd_replogfile, sizeof g->slurpd_replogfile, + "%s" LDAP_DIRSEP "%s", g->slurpd_rdir, DEFAULT_SLURPD_REPLOGFILE ); /* Set location/name of the slurpd status file */ - sprintf( g->slurpd_status_file, "%s/%s", g->slurpd_rdir, + snprintf( g->slurpd_status_file, sizeof g->slurpd_status_file, + "%s" LDAP_DIRSEP "%s", g->slurpd_rdir, DEFAULT_SLURPD_STATUS_FILE ); ber_set_option(NULL, LBER_OPT_DEBUG_LEVEL, &ldap_debug); @@ -158,7 +156,4 @@ doargs( #endif return 0; - } - -