mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-15 03:01:09 +08:00
Add warnings if ldap_set_option() fails.
Check for ldap_set_option() error using LDAP_OPT_ERROR, not -1. (probably should check != LDAP_OPT_SUCCESS instead). Added additional usage errors. Used return(EXIT_FAILURE) instead of exit(1). Used DIRSEP instead of '/' && '\\' Moved verbose output to stderr.
This commit is contained in:
parent
2f969f8552
commit
16366cff99
@ -45,6 +45,8 @@ main( int argc, char **argv )
|
||||
authmethod = LDAP_AUTH_KRBV4;
|
||||
#else
|
||||
fprintf (stderr, "%s was not compiled with Kerberos support\n", argv[0]);
|
||||
fprintf( stderr, usage, argv[0] );
|
||||
return( EXIT_FAILURE );
|
||||
#endif
|
||||
break;
|
||||
case 'K': /* kerberos bind, part one only */
|
||||
@ -52,6 +54,8 @@ main( int argc, char **argv )
|
||||
authmethod = LDAP_AUTH_KRBV41;
|
||||
#else
|
||||
fprintf (stderr, "%s was not compiled with Kerberos support\n", argv[0]);
|
||||
fprintf( stderr, usage, argv[0] );
|
||||
return( EXIT_FAILURE );
|
||||
#endif
|
||||
break;
|
||||
case 'c': /* continuous operation mode */
|
||||
@ -88,19 +92,23 @@ main( int argc, char **argv )
|
||||
want_bindpw++;
|
||||
break;
|
||||
case 'P':
|
||||
switch(optarg[0])
|
||||
switch( atoi(optarg) )
|
||||
{
|
||||
case '2':
|
||||
case 2:
|
||||
version = LDAP_VERSION2;
|
||||
break;
|
||||
case '3':
|
||||
case 3:
|
||||
version = LDAP_VERSION3;
|
||||
break;
|
||||
default:
|
||||
fprintf( stderr, "protocol version should be 2 or 3\n" );
|
||||
fprintf( stderr, usage, argv[0] );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
break;
|
||||
default:
|
||||
fprintf( stderr, usage, argv[0] );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
}
|
||||
|
||||
@ -111,8 +119,12 @@ main( int argc, char **argv )
|
||||
}
|
||||
|
||||
if ( debug ) {
|
||||
ber_set_option( NULL, LBER_OPT_DEBUG_LEVEL, &debug );
|
||||
ldap_set_option( NULL, LDAP_OPT_DEBUG_LEVEL, &debug );
|
||||
if( ber_set_option( NULL, LBER_OPT_DEBUG_LEVEL, &debug ) != LBER_OPT_ERROR ) {
|
||||
fprintf( stderr, "Could not set LBER_OPT_DEBUG_LEVEL %d\n", debug );
|
||||
}
|
||||
if( ldap_set_option( NULL, LDAP_OPT_DEBUG_LEVEL, &debug ) != LDAP_OPT_ERROR ) {
|
||||
fprintf( stderr, "Could not set LDAP_OPT_DEBUG_LEVEL %d\n", debug );
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef SIGPIPE
|
||||
@ -121,7 +133,7 @@ main( int argc, char **argv )
|
||||
|
||||
if (( ld = ldap_init( ldaphost, ldapport )) == NULL ) {
|
||||
perror( "ldap_init" );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
{
|
||||
@ -133,13 +145,15 @@ main( int argc, char **argv )
|
||||
if (want_bindpw)
|
||||
passwd = getpass("Enter LDAP Password: ");
|
||||
|
||||
if( version != -1 ) {
|
||||
ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version );
|
||||
if (version != -1 &&
|
||||
ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version ) == LDAP_OPT_ERROR)
|
||||
{
|
||||
fprintf( stderr, "Could not set LDAP_OPT_PROTOCOL_VERSION %d\n", version );
|
||||
}
|
||||
|
||||
if ( ldap_bind_s( ld, binddn, passwd, authmethod ) != LDAP_SUCCESS ) {
|
||||
ldap_perror( ld, "ldap_bind" );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
if ( fp == NULL ) {
|
||||
@ -158,10 +172,7 @@ main( int argc, char **argv )
|
||||
|
||||
ldap_unbind( ld );
|
||||
|
||||
exit( rc );
|
||||
|
||||
/* UNREACHABLE */
|
||||
return(0);
|
||||
return( rc );
|
||||
}
|
||||
|
||||
|
||||
|
@ -85,7 +85,7 @@ usage( const char *prog )
|
||||
" v - verbose mode\n"
|
||||
" w - password\n"
|
||||
, prog, (strcmp( prog, "ldapadd" ) ? " is to replace" : "") );
|
||||
exit( 1 );
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
|
||||
@ -96,8 +96,7 @@ main( int argc, char **argv )
|
||||
FILE *fp;
|
||||
int rc, i, use_ldif, authmethod, version, want_bindpw, debug;
|
||||
|
||||
if (( prog = strrchr( argv[ 0 ], '/' )) == NULL &&
|
||||
( prog = strrchr( argv[ 0 ], '\\' )) == NULL ) { /*for Windows/DOS*/
|
||||
if (( prog = strrchr( argv[ 0 ], *DIRSEP )) == NULL ) {
|
||||
prog = argv[ 0 ];
|
||||
} else {
|
||||
++prog;
|
||||
@ -133,6 +132,8 @@ main( int argc, char **argv )
|
||||
authmethod = LDAP_AUTH_KRBV4;
|
||||
#else
|
||||
fprintf (stderr, "%s was not compiled with Kerberos support\n", argv[0]);
|
||||
usage( argv[0] );
|
||||
return( EXIT_FAILURE );
|
||||
#endif
|
||||
break;
|
||||
case 'K': /* kerberos bind, part 1 only */
|
||||
@ -140,6 +141,8 @@ main( int argc, char **argv )
|
||||
authmethod = LDAP_AUTH_KRBV41;
|
||||
#else
|
||||
fprintf (stderr, "%s was not compiled with Kerberos support\n", argv[0]);
|
||||
usage( argv[0] );
|
||||
return( EXIT_FAILURE );
|
||||
#endif
|
||||
break;
|
||||
case 'F': /* force all changes records to be used */
|
||||
@ -173,14 +176,17 @@ main( int argc, char **argv )
|
||||
want_bindpw++;
|
||||
break;
|
||||
case 'P':
|
||||
switch(optarg[0])
|
||||
switch( atoi(optarg) )
|
||||
{
|
||||
case '2':
|
||||
case 2:
|
||||
version = LDAP_VERSION2;
|
||||
break;
|
||||
case '3':
|
||||
case 3:
|
||||
version = LDAP_VERSION3;
|
||||
break;
|
||||
default:
|
||||
fprintf( stderr, "protocol version should be 2 or 3\n" );
|
||||
usage( argv[0] );
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -194,15 +200,19 @@ main( int argc, char **argv )
|
||||
if ( infile != NULL ) {
|
||||
if (( fp = fopen( infile, "r" )) == NULL ) {
|
||||
perror( infile );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
} else {
|
||||
fp = stdin;
|
||||
}
|
||||
|
||||
if ( debug ) {
|
||||
ber_set_option( NULL, LBER_OPT_DEBUG_LEVEL, &debug );
|
||||
ldap_set_option( NULL, LDAP_OPT_DEBUG_LEVEL, &debug );
|
||||
if( ber_set_option( NULL, LBER_OPT_DEBUG_LEVEL, &debug ) != LBER_OPT_ERROR ) {
|
||||
fprintf( stderr, "Could not set LBER_OPT_DEBUG_LEVEL %d\n", debug );
|
||||
}
|
||||
if( ldap_set_option( NULL, LDAP_OPT_DEBUG_LEVEL, &debug ) != LDAP_OPT_ERROR ) {
|
||||
fprintf( stderr, "Could not set LDAP_OPT_DEBUG_LEVEL %d\n", debug );
|
||||
}
|
||||
ldif_debug = debug;
|
||||
}
|
||||
|
||||
@ -213,7 +223,7 @@ main( int argc, char **argv )
|
||||
if ( !not ) {
|
||||
if (( ld = ldap_init( ldaphost, ldapport )) == NULL ) {
|
||||
perror( "ldap_init" );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
/* this seems prudent */
|
||||
@ -225,13 +235,15 @@ main( int argc, char **argv )
|
||||
if (want_bindpw)
|
||||
passwd = getpass("Enter LDAP Password: ");
|
||||
|
||||
if( version != -1 ) {
|
||||
ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version );
|
||||
if (version != -1 &&
|
||||
ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version ) == LDAP_OPT_ERROR)
|
||||
{
|
||||
fprintf( stderr, "Could not set LDAP_OPT_PROTOCOL_VERSION %d\n", version );
|
||||
}
|
||||
|
||||
if ( ldap_bind_s( ld, binddn, passwd, authmethod ) != LDAP_SUCCESS ) {
|
||||
ldap_perror( ld, "ldap_bind" );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
}
|
||||
|
||||
@ -279,10 +291,7 @@ main( int argc, char **argv )
|
||||
ldap_unbind( ld );
|
||||
}
|
||||
|
||||
exit( rc );
|
||||
|
||||
/* UNREACHABLE */
|
||||
return(0);
|
||||
return( rc );
|
||||
}
|
||||
|
||||
|
||||
|
@ -63,6 +63,7 @@ main(int argc, char **argv)
|
||||
authmethod = LDAP_AUTH_KRBV4;
|
||||
#else
|
||||
fprintf (stderr, "%s was not compiled with Kerberos support\n", argv[0]);
|
||||
return( EXIT_FAILURE );
|
||||
#endif
|
||||
break;
|
||||
case 'K': /* kerberos bind, part one only */
|
||||
@ -70,6 +71,7 @@ main(int argc, char **argv)
|
||||
authmethod = LDAP_AUTH_KRBV41;
|
||||
#else
|
||||
fprintf (stderr, "%s was not compiled with Kerberos support\n", argv[0]);
|
||||
return( EXIT_FAILURE );
|
||||
#endif
|
||||
break;
|
||||
case 'c': /* continuous operation mode */
|
||||
@ -110,60 +112,72 @@ main(int argc, char **argv)
|
||||
want_bindpw++;
|
||||
break;
|
||||
case 'P':
|
||||
switch(optarg[0])
|
||||
switch( atoi(optarg) )
|
||||
{
|
||||
case '2':
|
||||
case 2:
|
||||
version = LDAP_VERSION2;
|
||||
break;
|
||||
case '3':
|
||||
case 3:
|
||||
version = LDAP_VERSION3;
|
||||
break;
|
||||
default:
|
||||
fprintf( stderr, "protocol version should be 2 or 3\n" );
|
||||
fprintf( stderr, usage, argv[0] );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
break;
|
||||
default:
|
||||
fprintf( stderr, usage, argv[0] );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
}
|
||||
|
||||
if ((newSuperior != NULL) && (version != LDAP_VERSION3))
|
||||
{
|
||||
fprintf( stderr,
|
||||
"%s: version conflict!, -s newSuperior requires LDAP v3\n",
|
||||
myname);
|
||||
fprintf( stderr, usage, argv[0] );
|
||||
exit( 1 );
|
||||
if (newSuperior != NULL) {
|
||||
if (version == LDAP_VERSION2) {
|
||||
fprintf( stderr,
|
||||
"%s: version conflict!, -s newSuperior requires LDAPv3\n",
|
||||
myname);
|
||||
fprintf( stderr, usage, argv[0] );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
/* promote to LDAPv3 */
|
||||
version = LDAP_VERSION3;
|
||||
}
|
||||
|
||||
havedn = 0;
|
||||
if (argc - optind == 2) {
|
||||
if (( rdn = strdup( argv[argc - 1] )) == NULL ) {
|
||||
perror( "strdup" );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
if (( entrydn = strdup( argv[argc - 2] )) == NULL ) {
|
||||
perror( "strdup" );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
++havedn;
|
||||
} else if ( argc - optind != 0 ) {
|
||||
fprintf( stderr, "%s: invalid number of arguments, only two allowed\n", myname);
|
||||
fprintf( stderr, usage, argv[0] );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
if ( infile != NULL ) {
|
||||
if (( fp = fopen( infile, "r" )) == NULL ) {
|
||||
perror( infile );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
} else {
|
||||
fp = stdin;
|
||||
}
|
||||
|
||||
if ( debug ) {
|
||||
ber_set_option( NULL, LBER_OPT_DEBUG_LEVEL, &debug );
|
||||
ldap_set_option( NULL, LDAP_OPT_DEBUG_LEVEL, &debug );
|
||||
if( ber_set_option( NULL, LBER_OPT_DEBUG_LEVEL, &debug ) != LBER_OPT_ERROR ) {
|
||||
fprintf( stderr, "Could not set LBER_OPT_DEBUG_LEVEL %d\n", debug );
|
||||
}
|
||||
if( ldap_set_option( NULL, LDAP_OPT_DEBUG_LEVEL, &debug ) != LDAP_OPT_ERROR ) {
|
||||
fprintf( stderr, "Could not set LDAP_OPT_DEBUG_LEVEL %d\n", debug );
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef SIGPIPE
|
||||
@ -172,7 +186,7 @@ main(int argc, char **argv)
|
||||
|
||||
if (( ld = ldap_init( ldaphost, ldapport )) == NULL ) {
|
||||
perror( "ldap_init" );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
/* this seems prudent */
|
||||
@ -184,13 +198,15 @@ main(int argc, char **argv)
|
||||
if (want_bindpw)
|
||||
passwd = getpass("Enter LDAP Password: ");
|
||||
|
||||
if( version != -1) {
|
||||
ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version );
|
||||
if (version != -1 &&
|
||||
ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version ) == LDAP_OPT_ERROR)
|
||||
{
|
||||
fprintf( stderr, "Could not set LDAP_OPT_PROTOCOL_VERSION %d\n", version );
|
||||
}
|
||||
|
||||
if ( ldap_bind_s( ld, binddn, passwd, authmethod ) != LDAP_SUCCESS ) {
|
||||
ldap_perror( ld, "ldap_bind" );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
rc = 0;
|
||||
@ -203,14 +219,14 @@ main(int argc, char **argv)
|
||||
if ( havedn ) { /* have DN, get RDN */
|
||||
if (( rdn = strdup( buf )) == NULL ) {
|
||||
perror( "strdup" );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
rc = domodrdn(ld, entrydn, rdn, remove, newSuperior);
|
||||
havedn = 0;
|
||||
} else if ( !havedn ) { /* don't have DN yet */
|
||||
if (( entrydn = strdup( buf )) == NULL ) {
|
||||
perror( "strdup" );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
++havedn;
|
||||
}
|
||||
@ -219,10 +235,8 @@ main(int argc, char **argv)
|
||||
|
||||
ldap_unbind( ld );
|
||||
|
||||
exit( rc );
|
||||
|
||||
/* UNREACHABLE */
|
||||
return(0);
|
||||
return( rc );
|
||||
}
|
||||
|
||||
static int domodrdn(
|
||||
|
@ -35,10 +35,9 @@
|
||||
|
||||
/* local macros */
|
||||
#define CEILING(x) ((double)(x) > (int)(x) ? (int)(x) + 1 : (int)(x))
|
||||
#define STRDUP(x) ((x) ? strcpy(malloc(strlen(x) + 1), x) : NULL)
|
||||
|
||||
#define LDAP_PASSWD_ATTRIB "userPassword"
|
||||
#define LDAP_PASSWD_CONF DEFAULT_SYSCONFDIR"/passwd.conf"
|
||||
#define LDAP_PASSWD_CONF DEFAULT_SYSCONFDIR DIRSEP "passwd.conf"
|
||||
|
||||
#define HS_NONE 0
|
||||
#define HS_PLAIN 1
|
||||
@ -159,7 +158,7 @@ gen_pass (unsigned int len)
|
||||
char *
|
||||
hash_none (const char *pw_in, Salt * salt)
|
||||
{
|
||||
return (STRDUP (pw_in));
|
||||
return (strdup (pw_in));
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -390,11 +389,11 @@ main (int argc, char *argv[])
|
||||
switch (i)
|
||||
{
|
||||
case 'a': /* password attribute */
|
||||
pwattr = STRDUP (optarg);
|
||||
pwattr = strdup (optarg);
|
||||
break;
|
||||
|
||||
case 'b': /* base search dn */
|
||||
base = STRDUP (optarg);
|
||||
base = strdup (optarg);
|
||||
break;
|
||||
|
||||
case 'C':
|
||||
@ -402,7 +401,7 @@ main (int argc, char *argv[])
|
||||
break;
|
||||
|
||||
case 'D': /* bind distinguished name */
|
||||
binddn = STRDUP (optarg);
|
||||
binddn = strdup (optarg);
|
||||
break;
|
||||
|
||||
case 'd': /* debugging option */
|
||||
@ -414,7 +413,7 @@ main (int argc, char *argv[])
|
||||
break;
|
||||
|
||||
case 'e': /* new password */
|
||||
newpw = STRDUP (optarg);
|
||||
newpw = strdup (optarg);
|
||||
break;
|
||||
|
||||
case 'g':
|
||||
@ -439,7 +438,7 @@ main (int argc, char *argv[])
|
||||
break;
|
||||
|
||||
case 'h': /* ldap host */
|
||||
ldaphost = STRDUP (optarg);
|
||||
ldaphost = strdup (optarg);
|
||||
break;
|
||||
|
||||
case 'K': /* use kerberos bind, 1st part only */
|
||||
@ -447,6 +446,7 @@ main (int argc, char *argv[])
|
||||
authmethod = LDAP_AUTH_KRBV41;
|
||||
#else
|
||||
fprintf (stderr, "%s was not compiled with Kerberos support\n", argv[0]);
|
||||
usage (argv[0]);
|
||||
#endif
|
||||
break;
|
||||
|
||||
@ -455,6 +455,7 @@ main (int argc, char *argv[])
|
||||
authmethod = LDAP_AUTH_KRBV4;
|
||||
#else
|
||||
fprintf (stderr, "%s was not compiled with Kerberos support\n", argv[0]);
|
||||
usage (argv[0]);
|
||||
#endif
|
||||
break;
|
||||
|
||||
@ -467,14 +468,16 @@ main (int argc, char *argv[])
|
||||
break;
|
||||
|
||||
case 'P':
|
||||
switch(optarg[0])
|
||||
{
|
||||
case '2':
|
||||
switch( atoi( optarg ) ) {
|
||||
case 2:
|
||||
version = LDAP_VERSION2;
|
||||
break;
|
||||
case '3':
|
||||
case 3:
|
||||
version = LDAP_VERSION3;
|
||||
break;
|
||||
default:
|
||||
fprintf( stderr, "protocol version should be 2 or 3\n" );
|
||||
usage( argv[0] );
|
||||
}
|
||||
break;
|
||||
|
||||
@ -483,11 +486,11 @@ main (int argc, char *argv[])
|
||||
break;
|
||||
|
||||
case 's': /* scope */
|
||||
if (strncasecmp (optarg, "base", 4) == 0)
|
||||
if (strcasecmp (optarg, "base") == 0)
|
||||
scope = LDAP_SCOPE_BASE;
|
||||
else if (strncasecmp (optarg, "one", 3) == 0)
|
||||
else if (strcasecmp (optarg, "one") == 0)
|
||||
scope = LDAP_SCOPE_ONELEVEL;
|
||||
else if (strncasecmp (optarg, "sub", 3) == 0)
|
||||
else if (strcasecmp (optarg, "sub") == 0)
|
||||
scope = LDAP_SCOPE_SUBTREE;
|
||||
else
|
||||
{
|
||||
@ -497,7 +500,7 @@ main (int argc, char *argv[])
|
||||
break;
|
||||
|
||||
case 't': /* target dn */
|
||||
targetdn = STRDUP (optarg);
|
||||
targetdn = strdup (optarg);
|
||||
break;
|
||||
|
||||
case 'v': /* verbose */
|
||||
@ -509,7 +512,7 @@ main (int argc, char *argv[])
|
||||
break;
|
||||
|
||||
case 'w': /* bind password */
|
||||
bindpw = STRDUP (optarg);
|
||||
bindpw = strdup (optarg);
|
||||
break;
|
||||
|
||||
case 'Y': /* salt length */
|
||||
@ -518,7 +521,7 @@ main (int argc, char *argv[])
|
||||
|
||||
case 'y': /* user specified salt */
|
||||
salt.len = strlen (optarg);
|
||||
salt.salt = (unsigned char *)STRDUP (optarg);
|
||||
salt.salt = (unsigned char *)strdup (optarg);
|
||||
break;
|
||||
|
||||
case 'z': /* time limit */
|
||||
@ -532,7 +535,7 @@ main (int argc, char *argv[])
|
||||
|
||||
/* grab filter */
|
||||
if (!(argc - optind < 1))
|
||||
filtpattern = STRDUP (argv[optind]);
|
||||
filtpattern = strdup (argv[optind]);
|
||||
|
||||
/* check for target(s) */
|
||||
if (!filtpattern && !targetdn)
|
||||
@ -552,13 +555,17 @@ main (int argc, char *argv[])
|
||||
if (strncmp (newpw, cknewpw, strlen (newpw)))
|
||||
{
|
||||
fprintf (stderr, "passwords do not match\n");
|
||||
exit (1);
|
||||
return ( EXIT_FAILURE );
|
||||
}
|
||||
}
|
||||
|
||||
if ( debug ) {
|
||||
ber_set_option( NULL, LBER_OPT_DEBUG_LEVEL, &debug );
|
||||
ldap_set_option( NULL, LDAP_OPT_DEBUG_LEVEL, &debug );
|
||||
if( ber_set_option( NULL, LBER_OPT_DEBUG_LEVEL, &debug ) != LBER_OPT_ERROR ) {
|
||||
fprintf( stderr, "Could not set LBER_OPT_DEBUG_LEVEL %d\n", debug );
|
||||
}
|
||||
if( ldap_set_option( NULL, LDAP_OPT_DEBUG_LEVEL, &debug ) != LDAP_OPT_ERROR ) {
|
||||
fprintf( stderr, "Could not set LDAP_OPT_DEBUG_LEVEL %d\n", debug );
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef SIGPIPE
|
||||
@ -584,15 +591,19 @@ main (int argc, char *argv[])
|
||||
if ((ld = ldap_init (ldaphost, ldapport)) == NULL)
|
||||
{
|
||||
perror ("ldap_init");
|
||||
exit (1);
|
||||
return ( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
/* set options */
|
||||
if( timelimit != -1 ) {
|
||||
ldap_set_option (ld, LDAP_OPT_TIMELIMIT, (void *)&timelimit);
|
||||
if (timelimit != -1 &&
|
||||
ldap_set_option( ld, LDAP_OPT_TIMELIMIT, (void *) &timelimit ) == LDAP_OPT_ERROR )
|
||||
{
|
||||
fprintf( stderr, "Could not set LDAP_OPT_TIMELIMIT %d\n", timelimit );
|
||||
}
|
||||
if( sizelimit != -1 ) {
|
||||
ldap_set_option (ld, LDAP_OPT_SIZELIMIT, (void *)&sizelimit);
|
||||
if (sizelimit != -1 &&
|
||||
ldap_set_option( ld, LDAP_OPT_SIZELIMIT, (void *) &sizelimit ) == LDAP_OPT_ERROR )
|
||||
{
|
||||
fprintf( stderr, "Could not set LDAP_OPT_SIZELIMIT %d\n", sizelimit );
|
||||
}
|
||||
|
||||
/* this seems prudent */
|
||||
@ -601,15 +612,17 @@ main (int argc, char *argv[])
|
||||
ldap_set_option( ld, LDAP_OPT_DEREF, &deref);
|
||||
}
|
||||
|
||||
if( version != -1 ) {
|
||||
ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version );
|
||||
if (version != -1 &&
|
||||
ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version ) == LDAP_OPT_ERROR)
|
||||
{
|
||||
fprintf( stderr, "Could not set LDAP_OPT_PROTOCOL_VERSION %d\n", version );
|
||||
}
|
||||
|
||||
/* authenticate to server */
|
||||
if (ldap_bind_s (ld, binddn, bindpw, authmethod) != LDAP_SUCCESS)
|
||||
{
|
||||
ldap_perror (ld, "ldap_bind");
|
||||
exit (1);
|
||||
return ( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
if (targetdn)
|
||||
@ -639,7 +652,7 @@ main (int argc, char *argv[])
|
||||
i != LDAP_SIZELIMIT_EXCEEDED)
|
||||
{
|
||||
ldap_perror (ld, "ldap_search");
|
||||
exit (1);
|
||||
return ( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
for (e = ldap_first_entry (ld, result); e; e = ldap_next_entry (ld, e))
|
||||
@ -658,8 +671,6 @@ main (int argc, char *argv[])
|
||||
|
||||
/* disconnect from server */
|
||||
ldap_unbind (ld);
|
||||
exit(0);
|
||||
|
||||
/* unreached */
|
||||
return (0);
|
||||
return ( EXIT_SUCCESS );
|
||||
}
|
||||
|
@ -51,7 +51,7 @@ usage( char *s )
|
||||
fprintf( stderr, " -h host\tldap server\n" );
|
||||
fprintf( stderr, " -p port\tport on ldap server\n" );
|
||||
fprintf( stderr, " -P version\tprocotol version (2 or 3)\n" );
|
||||
exit( 1 );
|
||||
exit( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
static void print_entry LDAP_P((
|
||||
@ -146,11 +146,11 @@ main( int argc, char **argv )
|
||||
++allow_binary;
|
||||
break;
|
||||
case 's': /* search scope */
|
||||
if ( strncasecmp( optarg, "base", 4 ) == 0 ) {
|
||||
if ( strcasecmp( optarg, "base" ) == 0 ) {
|
||||
scope = LDAP_SCOPE_BASE;
|
||||
} else if ( strncasecmp( optarg, "one", 3 ) == 0 ) {
|
||||
} else if ( strcasecmp( optarg, "one" ) == 0 ) {
|
||||
scope = LDAP_SCOPE_ONELEVEL;
|
||||
} else if ( strncasecmp( optarg, "sub", 3 ) == 0 ) {
|
||||
} else if ( strcasecmp( optarg, "sub" ) == 0 ) {
|
||||
scope = LDAP_SCOPE_SUBTREE;
|
||||
} else {
|
||||
fprintf( stderr, "scope should be base, one, or sub\n" );
|
||||
@ -159,13 +159,13 @@ main( int argc, char **argv )
|
||||
break;
|
||||
|
||||
case 'a': /* set alias deref option */
|
||||
if ( strncasecmp( optarg, "never", 5 ) == 0 ) {
|
||||
if ( strcasecmp( optarg, "never" ) == 0 ) {
|
||||
deref = LDAP_DEREF_NEVER;
|
||||
} else if ( strncasecmp( optarg, "search", 5 ) == 0 ) {
|
||||
} else if ( strcasecmp( optarg, "search" ) == 0 ) {
|
||||
deref = LDAP_DEREF_SEARCHING;
|
||||
} else if ( strncasecmp( optarg, "find", 4 ) == 0 ) {
|
||||
} else if ( strcasecmp( optarg, "find" ) == 0 ) {
|
||||
deref = LDAP_DEREF_FINDING;
|
||||
} else if ( strncasecmp( optarg, "always", 6 ) == 0 ) {
|
||||
} else if ( strcasecmp( optarg, "always" ) == 0 ) {
|
||||
deref = LDAP_DEREF_ALWAYS;
|
||||
} else {
|
||||
fprintf( stderr, "alias deref should be never, search, find, or always\n" );
|
||||
@ -207,14 +207,17 @@ main( int argc, char **argv )
|
||||
want_bindpw++;
|
||||
break;
|
||||
case 'P':
|
||||
switch(optarg[0])
|
||||
switch( atoi( optarg ) )
|
||||
{
|
||||
case '2':
|
||||
case 2:
|
||||
version = LDAP_VERSION2;
|
||||
break;
|
||||
case '3':
|
||||
case 3:
|
||||
version = LDAP_VERSION3;
|
||||
break;
|
||||
default:
|
||||
fprintf( stderr, "protocol version should be 2 or 3\n" );
|
||||
usage( argv[0] );
|
||||
}
|
||||
break;
|
||||
default:
|
||||
@ -250,13 +253,17 @@ main( int argc, char **argv )
|
||||
fp = stdin;
|
||||
} else if (( fp = fopen( infile, "r" )) == NULL ) {
|
||||
perror( infile );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
}
|
||||
|
||||
if ( debug ) {
|
||||
ber_set_option( NULL, LBER_OPT_DEBUG_LEVEL, &debug );
|
||||
ldap_set_option( NULL, LDAP_OPT_DEBUG_LEVEL, &debug );
|
||||
if( ber_set_option( NULL, LBER_OPT_DEBUG_LEVEL, &debug ) != LBER_OPT_ERROR ) {
|
||||
fprintf( stderr, "Could not set LBER_OPT_DEBUG_LEVEL %d\n", debug );
|
||||
}
|
||||
if( ldap_set_option( NULL, LDAP_OPT_DEBUG_LEVEL, &debug ) != LDAP_OPT_ERROR ) {
|
||||
fprintf( stderr, "Could not set LDAP_OPT_DEBUG_LEVEL %d\n", debug );
|
||||
}
|
||||
ldif_debug = debug;
|
||||
}
|
||||
|
||||
@ -265,42 +272,43 @@ main( int argc, char **argv )
|
||||
#endif
|
||||
|
||||
if ( verbose ) {
|
||||
printf( "ldap_init( %s, %d )\n",
|
||||
fprintf( stderr, "ldap_init( %s, %d )\n",
|
||||
(ldaphost != NULL) ? ldaphost : "<DEFAULT>",
|
||||
ldapport );
|
||||
}
|
||||
|
||||
if (( ld = ldap_init( ldaphost, ldapport )) == NULL ) {
|
||||
perror( "ldap_init" );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
if (deref != -1 &&
|
||||
ldap_set_option( ld, LDAP_OPT_DEREF, (void *) &deref ) == -1 )
|
||||
ldap_set_option( ld, LDAP_OPT_DEREF, (void *) &deref ) == LDAP_OPT_ERROR )
|
||||
{
|
||||
/* set option error */
|
||||
fprintf( stderr, "Could not set LDAP_OPT_DEREF %d\n", deref );
|
||||
}
|
||||
if (timelimit != -1 &&
|
||||
ldap_set_option( ld, LDAP_OPT_TIMELIMIT, (void *) &timelimit ) == -1 )
|
||||
ldap_set_option( ld, LDAP_OPT_TIMELIMIT, (void *) &timelimit ) == LDAP_OPT_ERROR )
|
||||
{
|
||||
/* set option error */
|
||||
fprintf( stderr, "Could not set LDAP_OPT_TIMELIMIT %d\n", timelimit );
|
||||
}
|
||||
if (sizelimit != -1 &&
|
||||
ldap_set_option( ld, LDAP_OPT_SIZELIMIT, (void *) &sizelimit ) == -1 )
|
||||
ldap_set_option( ld, LDAP_OPT_SIZELIMIT, (void *) &sizelimit ) == LDAP_OPT_ERROR )
|
||||
{
|
||||
/* set option error */
|
||||
fprintf( stderr, "Could not set LDAP_OPT_SIZELIMIT %d\n", sizelimit );
|
||||
}
|
||||
if (referrals != -1 &&
|
||||
ldap_set_option( ld, LDAP_OPT_REFERRALS,
|
||||
(referrals ? LDAP_OPT_ON : LDAP_OPT_OFF) ) == -1 )
|
||||
(referrals ? LDAP_OPT_ON : LDAP_OPT_OFF) ) == LDAP_OPT_ERROR )
|
||||
{
|
||||
/* set option error */
|
||||
fprintf( stderr, "Could not set LDAP_OPT_REFERRALS %s\n",
|
||||
referrals ? "on" : "off" );
|
||||
}
|
||||
|
||||
if (version != -1 &&
|
||||
ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version ) == -1)
|
||||
ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, &version ) == LDAP_OPT_ERROR)
|
||||
{
|
||||
/* set option error */
|
||||
fprintf( stderr, "Could not set LDAP_OPT_PROTOCOL_VERSION %d\n", version );
|
||||
}
|
||||
|
||||
if (want_bindpw)
|
||||
@ -308,19 +316,19 @@ main( int argc, char **argv )
|
||||
|
||||
if ( ldap_bind_s( ld, binddn, passwd, authmethod ) != LDAP_SUCCESS ) {
|
||||
ldap_perror( ld, "ldap_bind" );
|
||||
exit( 1 );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
|
||||
if ( verbose ) {
|
||||
printf( "filter pattern: %s\nreturning: ", filtpattern );
|
||||
fprintf( stderr, "filter pattern: %s\nreturning: ", filtpattern );
|
||||
if ( attrs == NULL ) {
|
||||
printf( "ALL" );
|
||||
} else {
|
||||
for ( i = 0; attrs[ i ] != NULL; ++i ) {
|
||||
printf( "%s ", attrs[ i ] );
|
||||
fprintf( stderr, "%s ", attrs[ i ] );
|
||||
}
|
||||
}
|
||||
putchar( '\n' );
|
||||
fprintf( stderr, "\n" );
|
||||
}
|
||||
|
||||
if ( infile == NULL ) {
|
||||
@ -344,10 +352,9 @@ main( int argc, char **argv )
|
||||
}
|
||||
|
||||
ldap_unbind( ld );
|
||||
exit( rc );
|
||||
|
||||
/* UNREACHABLE */
|
||||
return(0);
|
||||
|
||||
return( rc );
|
||||
}
|
||||
|
||||
|
||||
@ -367,7 +374,7 @@ static int dosearch(
|
||||
sprintf( filter, filtpatt, value );
|
||||
|
||||
if ( verbose ) {
|
||||
printf( "filter is: (%s)\n", filter );
|
||||
fprintf( stderr, "filter is: (%s)\n", filter );
|
||||
}
|
||||
|
||||
if ( not ) {
|
||||
|
Loading…
Reference in New Issue
Block a user