forward-slash paths to Windows back-slash format.
int argc,
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* )
lutil_strcopy LDAP_P(( char *dst, const char *src ));
int _trans_argv = 1;
#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 *progname;
_trans_argv = 0;
}
#endif
+ LUTIL_SLASHPATH( argv[0] );
progname = strrchr ( argv[0], *LDAP_DIRSEP );
progname = progname ? &progname[1] : argv[0];
-
return progname;
}
#include <ac/unistd.h>
#include <ldap.h>
+#include <lutil.h>
#include "slurp.h"
#include "globals.h"
int i;
int rflag = 0;
- if ( (g->myname = strrchr( argv[0], LDAP_DIRSEP[0] )) == NULL ) {
- g->myname = strdup( argv[0] );
- } else {
- g->myname = strdup( g->myname + 1 );
- }
+ g->myname = strdup( lutil_progname( "slurpd", argc, argv ));
while ( (i = getopt( argc, argv, "d:f:n:or:t:V" )) != EOF ) {
switch ( i ) {
#endif /* LDAP_DEBUG */
break;
case 'f': /* slapd config file */
+ LUTIL_SLASHPATH( optarg );
g->slapd_configfile = strdup( optarg );
break;
case 'n': /* NT service name */
g->one_shot_mode = 1;
break;
case 'r': /* slapd replog file */
+ LUTIL_SLASHPATH( optarg );
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")));
+ LUTIL_SLASHPATH( optarg );
+ g->slurpd_rdir = (char *)malloc (sz = (strlen(optarg) + sizeof(LDAP_DIRSEP "replica")));
snprintf(g->slurpd_rdir, sz,
"%s" LDAP_DIRSEP "replica", optarg);
} break;
#include <ac/ctype.h>
#include <ldap.h>
+#include <lutil.h>
#include "slurp.h"
#include "globals.h"
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 ) {
return( 1 );
}
+ LUTIL_SLASHPATH( cargv[1] );
savefname = strdup( cargv[1] );
savelineno = lineno;
return( 1 );
}
+ LUTIL_SLASHPATH( cargv[1] );
slurpd_pid_file = ch_strdup( cargv[1] );
} else if ( strcasecmp( cargv[0], "replica-argsfile" ) == 0 ) {
return( 1 );
}
+ LUTIL_SLASHPATH( cargv[1] );
slurpd_args_file = ch_strdup( cargv[1] );
}
}