X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslurpd%2Fconfig.c;h=71934ce59efc95a1555eb6720e3063d7254a51c9;hb=4abbf9c610d4fbaeee0dbdceaad1e0f94ed8e8fe;hp=3f7a8f8b65f0f3b04d7256d05a24381b70a2fc47;hpb=dbdfb8c0a34d81c1368843a41ed5c190f915011f;p=openldap diff --git a/servers/slurpd/config.c b/servers/slurpd/config.c index 3f7a8f8b65..71934ce59e 100644 --- a/servers/slurpd/config.c +++ b/servers/slurpd/config.c @@ -1,10 +1,20 @@ /* $OpenLDAP$ */ -/* - * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. - * COPYING RESTRICTIONS APPLY, see COPYRIGHT file +/* This work is part of OpenLDAP Software . + * + * Copyright 1998-2005 The OpenLDAP Foundation. + * Portions Copyright 2003 Mark Benson. + * Portions Copyright 2002 John Morrissey. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. + * + * A copy of this license is available in file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . */ -/* - * Copyright (c) 1996 Regents of the University of Michigan. +/* Portions Copyright (c) 1996 Regents of the University of Michigan. * All rights reserved. * * Redistribution and use in source and binary forms are permitted @@ -14,6 +24,13 @@ * software without specific prior written permission. This software * is provided ``as is'' without express or implied warranty. */ +/* ACKNOWLEDGEMENTS: + * This work was originally developed by the University of Michigan + * (as part of U-MICH LDAP). Additional signficant contributors + * include: + * John Morrissey + * Mark Benson + */ /* @@ -30,6 +47,7 @@ #include #include +#include #include "slurp.h" #include "globals.h" @@ -69,14 +87,8 @@ slurpd_read_config( cargv_size = ARGS_STEP + 1; } -#ifdef NEW_LOGGING - LDAP_LOG ( CONFIG, ARGS, - "slurpd_read_config: Config: opening config file \"%s\"\n", - fname, 0, 0 ); -#else Debug( LDAP_DEBUG_CONFIG, "Config: opening config file \"%s\"\n", fname, 0, 0 ); -#endif if ( (fp = fopen( fname, "r" )) == NULL ) { perror( fname ); @@ -90,12 +102,7 @@ slurpd_read_config( continue; } -#ifdef NEW_LOGGING - LDAP_LOG ( CONFIG, DETAIL1, - "slurpd_read_config: Config: (%s)\n", line, 0, 0 ); -#else Debug( LDAP_DEBUG_CONFIG, "Config: (%s)\n", line, 0, 0 ); -#endif parse_line( line ); @@ -124,6 +131,7 @@ slurpd_read_config( lineno, cargv[1] ); fprintf( stderr, "line (ignored)\n" ); } + LUTIL_SLASHPATH( cargv[1] ); strcpy( sglob->slapd_replogfile, cargv[1] ); } } else if ( strcasecmp( cargv[0], "replica" ) == 0 ) { @@ -135,18 +143,13 @@ slurpd_read_config( int savelineno; if ( cargc < 2 ) { -#ifdef NEW_LOGGING - LDAP_LOG( CONFIG, CRIT, - "%s: line %d: missing filename in \"include " - "\" line.\n", fname, lineno , 0 ); -#else Debug( LDAP_DEBUG_ANY, "%s: line %d: missing filename in \"include \" line\n", fname, lineno, 0 ); -#endif return( 1 ); } + LUTIL_SLASHPATH( cargv[1] ); savefname = strdup( cargv[1] ); savelineno = lineno; @@ -159,50 +162,53 @@ slurpd_read_config( } else if ( strcasecmp( cargv[0], "replica-pidfile" ) == 0 ) { if ( cargc < 2 ) { -#ifdef NEW_LOGGING - LDAP_LOG( CONFIG, CRIT, - "%s: line %d missing file name in \"replica-pidfile \" " - "line.\n", fname, lineno, 0 ); -#else Debug( LDAP_DEBUG_ANY, "%s: line %d: missing file name in \"replica-pidfile \" line\n", fname, lineno, 0 ); -#endif return( 1 ); } + LUTIL_SLASHPATH( cargv[1] ); slurpd_pid_file = ch_strdup( cargv[1] ); } else if ( strcasecmp( cargv[0], "replica-argsfile" ) == 0 ) { if ( cargc < 2 ) { -#ifdef NEW_LOGGING - LDAP_LOG( CONFIG, CRIT, - "%s: %d: missing file name in " - "\"argsfile \" line.\n", - fname, lineno, 0 ); -#else Debug( LDAP_DEBUG_ANY, "%s: line %d: missing file name in \"argsfile \" line\n", fname, lineno, 0 ); -#endif return( 1 ); } + LUTIL_SLASHPATH( cargv[1] ); slurpd_args_file = ch_strdup( cargv[1] ); - } + + } else if ( strcasecmp( cargv[0], "replicationinterval" ) == 0 ) { + int c; + if ( cargc < 2 ) { + Debug( LDAP_DEBUG_ANY, "%s: line %d: missing interval in " + "\"replicationinterval \" line\n", + fname, lineno, 0 ); + return( 1 ); + } + + c = atoi( cargv[1] ); + if( c < 1 ) { + Debug( LDAP_DEBUG_ANY, "%s: line %d: invalid interval " + "(%d) in \"replicationinterval \" line\n", + fname, lineno, c ); + + return( 1 ); + } + + sglob->no_work_interval = c; + } } fclose( fp ); -#ifdef NEW_LOGGING - LDAP_LOG ( CONFIG, RESULTS, - "slurpd_read_config: Config: " - "** configuration file successfully read and parsed\n", 0, 0, 0 ); -#else Debug( LDAP_DEBUG_CONFIG, "Config: ** configuration file successfully read and parsed\n", 0, 0, 0 ); -#endif return 0; } @@ -382,19 +388,11 @@ add_replica( sglob->replicas[ nr - 1] = NULL; sglob->num_replicas--; } else { -#ifdef NEW_LOGGING - LDAP_LOG ( CONFIG, RESULTS, - "add_replica: Config: ** successfully added replica \"%s%d\"\n", - sglob->replicas[ nr - 1 ]->ri_hostname == NULL ? - "(null)" : sglob->replicas[ nr - 1 ]->ri_hostname, - sglob->replicas[ nr - 1 ]->ri_port, 0 ); -#else Debug( LDAP_DEBUG_CONFIG, "Config: ** successfully added replica \"%s:%d\"\n", sglob->replicas[ nr - 1 ]->ri_hostname == NULL ? "(null)" : sglob->replicas[ nr - 1 ]->ri_hostname, sglob->replicas[ nr - 1 ]->ri_port, 0 ); -#endif sglob->replicas[ nr - 1]->ri_stel = sglob->st->st_add( sglob->st, sglob->replicas[ nr - 1 ] ); @@ -523,10 +521,10 @@ parse_replica_line( fprintf( stderr, "slurpd no longer supports Kerberos.\n" ); exit( EXIT_FAILURE ); } else if ( !strcasecmp( val, SIMPLESTR )) { - ri->ri_bind_method = AUTH_SIMPLE; + ri->ri_bind_method = LDAP_AUTH_SIMPLE; gots |= GOT_METHOD; } else if ( !strcasecmp( val, SASLSTR )) { - ri->ri_bind_method = AUTH_SASL; + ri->ri_bind_method = LDAP_AUTH_SASL; gots |= GOT_METHOD; } else { ri->ri_bind_method = -1; @@ -575,14 +573,13 @@ parse_replica_line( } } - if ( ri->ri_bind_method == AUTH_SASL) { + if ( ri->ri_bind_method == LDAP_AUTH_SASL) { if ((gots & GOT_MECH) == 0) { fprintf( stderr, "Error: \"replica\" line needs SASLmech flag in " ); fprintf( stderr, "slapd config file, line %d\n", lineno ); return -1; } - } - else if ( gots != GOT_ALL ) { + } else if ( gots != GOT_ALL ) { fprintf( stderr, "Error: Malformed \"replica\" line in slapd " ); fprintf( stderr, "config file, line %d\n", lineno ); return -1;