mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-20 22:59:34 -05:00
ITS#2457 Added LUTIL_SLASHPATH macro and func for converting
forward-slash paths to Windows back-slash format.
This commit is contained in:
parent
56cdaa594c
commit
cbabd269a5
4 changed files with 37 additions and 7 deletions
|
|
@ -147,6 +147,14 @@ lutil_progname LDAP_P((
|
||||||
int argc,
|
int argc,
|
||||||
char *argv[] ));
|
char *argv[] ));
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
LDAP_LUTIL_F( void )
|
||||||
|
lutil_slashpath LDAP_P(( char* path ));
|
||||||
|
#define LUTIL_SLASHPATH(p) lutil_slashpath(p)
|
||||||
|
#else
|
||||||
|
#define LUTIL_SLASHPATH(p)
|
||||||
|
#endif
|
||||||
|
|
||||||
LDAP_LUTIL_F( char* )
|
LDAP_LUTIL_F( char* )
|
||||||
lutil_strcopy LDAP_P(( char *dst, const char *src ));
|
lutil_strcopy LDAP_P(( char *dst, const char *src ));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -34,6 +34,23 @@
|
||||||
int _trans_argv = 1;
|
int _trans_argv = 1;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
/* Some Windows versions accept both forward and backslashes in
|
||||||
|
* directory paths, but we always use backslashes when generating
|
||||||
|
* and parsing...
|
||||||
|
*/
|
||||||
|
void lutil_slashpath( char *path )
|
||||||
|
{
|
||||||
|
char *c, *p;
|
||||||
|
|
||||||
|
p = path;
|
||||||
|
while (( c=strchr( p, '/' ))) {
|
||||||
|
*c++ = '\\';
|
||||||
|
p = c;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
char* lutil_progname( const char* name, int argc, char *argv[] )
|
char* lutil_progname( const char* name, int argc, char *argv[] )
|
||||||
{
|
{
|
||||||
char *progname;
|
char *progname;
|
||||||
|
|
@ -49,9 +66,9 @@ char* lutil_progname( const char* name, int argc, char *argv[] )
|
||||||
_trans_argv = 0;
|
_trans_argv = 0;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
LUTIL_SLASHPATH( argv[0] );
|
||||||
progname = strrchr ( argv[0], *LDAP_DIRSEP );
|
progname = strrchr ( argv[0], *LDAP_DIRSEP );
|
||||||
progname = progname ? &progname[1] : argv[0];
|
progname = progname ? &progname[1] : argv[0];
|
||||||
|
|
||||||
return progname;
|
return progname;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,7 @@
|
||||||
#include <ac/unistd.h>
|
#include <ac/unistd.h>
|
||||||
|
|
||||||
#include <ldap.h>
|
#include <ldap.h>
|
||||||
|
#include <lutil.h>
|
||||||
|
|
||||||
#include "slurp.h"
|
#include "slurp.h"
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
|
|
@ -74,11 +75,7 @@ doargs(
|
||||||
int i;
|
int i;
|
||||||
int rflag = 0;
|
int rflag = 0;
|
||||||
|
|
||||||
if ( (g->myname = strrchr( argv[0], LDAP_DIRSEP[0] )) == NULL ) {
|
g->myname = strdup( lutil_progname( "slurpd", argc, argv ));
|
||||||
g->myname = strdup( argv[0] );
|
|
||||||
} else {
|
|
||||||
g->myname = strdup( g->myname + 1 );
|
|
||||||
}
|
|
||||||
|
|
||||||
while ( (i = getopt( argc, argv, "d:f:n:or:t:V" )) != EOF ) {
|
while ( (i = getopt( argc, argv, "d:f:n:or:t:V" )) != EOF ) {
|
||||||
switch ( i ) {
|
switch ( i ) {
|
||||||
|
|
@ -120,6 +117,7 @@ doargs(
|
||||||
#endif /* LDAP_DEBUG */
|
#endif /* LDAP_DEBUG */
|
||||||
break;
|
break;
|
||||||
case 'f': /* slapd config file */
|
case 'f': /* slapd config file */
|
||||||
|
LUTIL_SLASHPATH( optarg );
|
||||||
g->slapd_configfile = strdup( optarg );
|
g->slapd_configfile = strdup( optarg );
|
||||||
break;
|
break;
|
||||||
case 'n': /* NT service name */
|
case 'n': /* NT service name */
|
||||||
|
|
@ -130,13 +128,15 @@ doargs(
|
||||||
g->one_shot_mode = 1;
|
g->one_shot_mode = 1;
|
||||||
break;
|
break;
|
||||||
case 'r': /* slapd replog file */
|
case 'r': /* slapd replog file */
|
||||||
|
LUTIL_SLASHPATH( optarg );
|
||||||
snprintf( g->slapd_replogfile, sizeof g->slapd_replogfile,
|
snprintf( g->slapd_replogfile, sizeof g->slapd_replogfile,
|
||||||
"%s", optarg );
|
"%s", optarg );
|
||||||
rflag++;
|
rflag++;
|
||||||
break;
|
break;
|
||||||
case 't': { /* dir to use for our copies of replogs */
|
case 't': { /* dir to use for our copies of replogs */
|
||||||
size_t sz;
|
size_t sz;
|
||||||
g->slurpd_rdir = (char *)malloc (sz = (strlen(optarg) + sizeof("/replica")));
|
LUTIL_SLASHPATH( optarg );
|
||||||
|
g->slurpd_rdir = (char *)malloc (sz = (strlen(optarg) + sizeof(LDAP_DIRSEP "replica")));
|
||||||
snprintf(g->slurpd_rdir, sz,
|
snprintf(g->slurpd_rdir, sz,
|
||||||
"%s" LDAP_DIRSEP "replica", optarg);
|
"%s" LDAP_DIRSEP "replica", optarg);
|
||||||
} break;
|
} break;
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,7 @@
|
||||||
#include <ac/ctype.h>
|
#include <ac/ctype.h>
|
||||||
|
|
||||||
#include <ldap.h>
|
#include <ldap.h>
|
||||||
|
#include <lutil.h>
|
||||||
|
|
||||||
#include "slurp.h"
|
#include "slurp.h"
|
||||||
#include "globals.h"
|
#include "globals.h"
|
||||||
|
|
@ -141,6 +142,7 @@ slurpd_read_config(
|
||||||
lineno, cargv[1] );
|
lineno, cargv[1] );
|
||||||
fprintf( stderr, "line (ignored)\n" );
|
fprintf( stderr, "line (ignored)\n" );
|
||||||
}
|
}
|
||||||
|
LUTIL_SLASHPATH( cargv[1] );
|
||||||
strcpy( sglob->slapd_replogfile, cargv[1] );
|
strcpy( sglob->slapd_replogfile, cargv[1] );
|
||||||
}
|
}
|
||||||
} else if ( strcasecmp( cargv[0], "replica" ) == 0 ) {
|
} else if ( strcasecmp( cargv[0], "replica" ) == 0 ) {
|
||||||
|
|
@ -164,6 +166,7 @@ slurpd_read_config(
|
||||||
|
|
||||||
return( 1 );
|
return( 1 );
|
||||||
}
|
}
|
||||||
|
LUTIL_SLASHPATH( cargv[1] );
|
||||||
savefname = strdup( cargv[1] );
|
savefname = strdup( cargv[1] );
|
||||||
savelineno = lineno;
|
savelineno = lineno;
|
||||||
|
|
||||||
|
|
@ -189,6 +192,7 @@ slurpd_read_config(
|
||||||
return( 1 );
|
return( 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LUTIL_SLASHPATH( cargv[1] );
|
||||||
slurpd_pid_file = ch_strdup( cargv[1] );
|
slurpd_pid_file = ch_strdup( cargv[1] );
|
||||||
|
|
||||||
} else if ( strcasecmp( cargv[0], "replica-argsfile" ) == 0 ) {
|
} else if ( strcasecmp( cargv[0], "replica-argsfile" ) == 0 ) {
|
||||||
|
|
@ -207,6 +211,7 @@ slurpd_read_config(
|
||||||
return( 1 );
|
return( 1 );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
LUTIL_SLASHPATH( cargv[1] );
|
||||||
slurpd_args_file = ch_strdup( cargv[1] );
|
slurpd_args_file = ch_strdup( cargv[1] );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue