mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
Add support of "-H uri"
This commit is contained in:
parent
3844db4404
commit
e97cdfb7a9
@ -23,6 +23,7 @@
|
||||
static char *prog;
|
||||
static char *binddn = NULL;
|
||||
static struct berval passwd = { 0, NULL };
|
||||
static char *ldapuri = NULL;
|
||||
static char *ldaphost = NULL;
|
||||
static int ldapport = 0;
|
||||
static int prune = 0;
|
||||
@ -36,7 +37,7 @@ static char *sasl_secprops = NULL;
|
||||
#endif
|
||||
static int use_tls = 0;
|
||||
static int not, verbose, contoper;
|
||||
static LDAP *ld;
|
||||
static LDAP *ld = NULL;
|
||||
|
||||
static int dodelete LDAP_P((
|
||||
LDAP *ld,
|
||||
@ -100,7 +101,7 @@ main( int argc, char **argv )
|
||||
|
||||
prog = (prog = strrchr(argv[0], *LDAP_DIRSEP)) == NULL ? argv[0] : prog + 1;
|
||||
|
||||
while (( i = getopt( argc, argv, "cf:r" "Cd:D:h:IkKMnO:p:P:QRU:vw:WxX:Y:Z" )) != EOF ) {
|
||||
while (( i = getopt( argc, argv, "cf:r" "Cd:D:h:H:IkKMnO:p:P:QRU:vw:WxX:Y:Z" )) != EOF ) {
|
||||
switch( i ) {
|
||||
/* Delete Specific Options */
|
||||
case 'c': /* continuous operation mode */
|
||||
@ -135,12 +136,31 @@ main( int argc, char **argv )
|
||||
binddn = strdup( optarg );
|
||||
break;
|
||||
case 'h': /* ldap host */
|
||||
if( ldapuri != NULL ) {
|
||||
fprintf( stderr, "%s: -h incompatible with -H\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldaphost != NULL ) {
|
||||
fprintf( stderr, "%s: -h previously specified\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
ldaphost = strdup( optarg );
|
||||
break;
|
||||
case 'H': /* ldap URI */
|
||||
if( ldaphost != NULL ) {
|
||||
fprintf( stderr, "%s: -H incompatible with -h\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldapport ) {
|
||||
fprintf( stderr, "%s: -H incompatible with -p\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldapuri != NULL ) {
|
||||
fprintf( stderr, "%s: -H previously specified\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
ldapuri = strdup( optarg );
|
||||
break;
|
||||
case 'I':
|
||||
#ifdef HAVE_CYRUS_SASL
|
||||
if( version == LDAP_VERSION2 ) {
|
||||
@ -472,10 +492,26 @@ main( int argc, char **argv )
|
||||
(void) SIGNAL( SIGPIPE, SIG_IGN );
|
||||
#endif
|
||||
|
||||
if (( ld = ldap_init( ldaphost, ldapport )) == NULL ) {
|
||||
perror( "ldap_init" );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
if( ( ldaphost != NULL || ldapport ) && ( ldapuri == NULL ) ) {
|
||||
if ( verbose ) {
|
||||
fprintf( stderr, "ldap_init( %s, %d )\n",
|
||||
ldaphost != NULL ? ldaphost : "<DEFAULT>",
|
||||
ldapport );
|
||||
}
|
||||
ld = ldap_init( ldaphost, ldapport );
|
||||
|
||||
} else {
|
||||
if ( verbose ) {
|
||||
fprintf( stderr, "ldap_initialize( %s )\n",
|
||||
ldapuri != NULL ? ldapuri : "<DEFAULT>" );
|
||||
}
|
||||
(void) ldap_initialize( &ld, ldapuri );
|
||||
}
|
||||
|
||||
if( ld != NULL ) {
|
||||
fprintf( stderr, "Could not create LDAP session handle (%d): %s\n", rc );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
{
|
||||
/* this seems prudent for searches below */
|
||||
|
@ -36,6 +36,7 @@
|
||||
static char *prog;
|
||||
static char *binddn = NULL;
|
||||
static struct berval passwd = { 0, NULL };
|
||||
static char *ldapuri = NULL;
|
||||
static char *ldaphost = NULL;
|
||||
static int ldapport = 0;
|
||||
#ifdef HAVE_CYRUS_SASL
|
||||
@ -48,7 +49,7 @@ static char *sasl_secprops = NULL;
|
||||
#endif
|
||||
static int use_tls = 0;
|
||||
static int ldapadd, replace, not, verbose, contoper, force;
|
||||
static LDAP *ld;
|
||||
static LDAP *ld = NULL;
|
||||
|
||||
#define LDAPMOD_MAXLINE 4096
|
||||
|
||||
@ -157,7 +158,7 @@ main( int argc, char **argv )
|
||||
authmethod = -1;
|
||||
version = -1;
|
||||
|
||||
while (( i = getopt( argc, argv, "acrf:F" "Cd:D:h:IkKMnO:p:P:QRU:vw:WxX:Y:Z" )) != EOF ) {
|
||||
while (( i = getopt( argc, argv, "acrf:F" "Cd:D:h:H:IkKMnO:p:P:QRU:vw:WxX:Y:Z" )) != EOF ) {
|
||||
switch( i ) {
|
||||
/* Modify Options */
|
||||
case 'a': /* add */
|
||||
@ -195,12 +196,31 @@ main( int argc, char **argv )
|
||||
binddn = strdup( optarg );
|
||||
break;
|
||||
case 'h': /* ldap host */
|
||||
if( ldapuri != NULL ) {
|
||||
fprintf( stderr, "%s: -h incompatible with -H\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldaphost != NULL ) {
|
||||
fprintf( stderr, "%s: -h previously specified\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
ldaphost = strdup( optarg );
|
||||
break;
|
||||
case 'H': /* ldap URI */
|
||||
if( ldaphost != NULL ) {
|
||||
fprintf( stderr, "%s: -H incompatible with -h\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldapport ) {
|
||||
fprintf( stderr, "%s: -H incompatible with -p\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldapuri != NULL ) {
|
||||
fprintf( stderr, "%s: -H previously specified\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
ldapuri = strdup( optarg );
|
||||
break;
|
||||
case 'I':
|
||||
#ifdef HAVE_CYRUS_SASL
|
||||
if( version == LDAP_VERSION2 ) {
|
||||
@ -539,9 +559,25 @@ main( int argc, char **argv )
|
||||
#endif
|
||||
|
||||
if ( !not ) {
|
||||
if (( ld = ldap_init( ldaphost, ldapport )) == NULL ) {
|
||||
perror( "ldap_init" );
|
||||
return( EXIT_FAILURE );
|
||||
if( ( ldaphost != NULL || ldapport ) && ( ldapuri == NULL ) ) {
|
||||
if ( verbose ) {
|
||||
fprintf( stderr, "ldap_init( %s, %d )\n",
|
||||
ldaphost != NULL ? ldaphost : "<DEFAULT>",
|
||||
ldapport );
|
||||
}
|
||||
ld = ldap_init( ldaphost, ldapport );
|
||||
|
||||
} else {
|
||||
if ( verbose ) {
|
||||
fprintf( stderr, "ldap_initialize( %s )\n",
|
||||
ldapuri != NULL ? ldapuri : "<DEFAULT>" );
|
||||
}
|
||||
(void) ldap_initialize( &ld, ldapuri );
|
||||
}
|
||||
|
||||
if( ld != NULL ) {
|
||||
fprintf( stderr, "Could not create LDAP session handle (%d): %s\n", rc );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
/* referrals */
|
||||
|
@ -35,6 +35,7 @@
|
||||
static char *prog = NULL;
|
||||
static char *binddn = NULL;
|
||||
static struct berval passwd = { 0, NULL };
|
||||
static char *ldapuri = NULL;
|
||||
static char *ldaphost = NULL;
|
||||
static int ldapport = 0;
|
||||
#ifdef HAVE_CYRUS_SASL
|
||||
@ -47,7 +48,7 @@ static char *sasl_secprops = NULL;
|
||||
#endif
|
||||
static int use_tls = 0;
|
||||
static int not, verbose, contoper;
|
||||
static LDAP *ld;
|
||||
static LDAP *ld = NULL;
|
||||
|
||||
static int domodrdn(
|
||||
LDAP *ld,
|
||||
@ -116,7 +117,7 @@ main(int argc, char **argv)
|
||||
|
||||
prog = (prog = strrchr(argv[0], *LDAP_DIRSEP)) == NULL ? argv[0] : prog + 1;
|
||||
|
||||
while (( i = getopt( argc, argv, "cf:rs:" "Cd:D:h:IkKMnO:p:P:QRU:vw:WxX:Y:Z" )) != EOF ) {
|
||||
while (( i = getopt( argc, argv, "cf:rs:" "Cd:D:h:H:IkKMnO:p:P:QRU:vw:WxX:Y:Z" )) != EOF ) {
|
||||
switch( i ) {
|
||||
/* Modrdn Options */
|
||||
case 'c':
|
||||
@ -157,12 +158,31 @@ main(int argc, char **argv)
|
||||
binddn = strdup( optarg );
|
||||
break;
|
||||
case 'h': /* ldap host */
|
||||
if( ldapuri != NULL ) {
|
||||
fprintf( stderr, "%s: -h incompatible with -H\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldaphost != NULL ) {
|
||||
fprintf( stderr, "%s: -h previously specified\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
ldaphost = strdup( optarg );
|
||||
break;
|
||||
case 'H': /* ldap URI */
|
||||
if( ldaphost != NULL ) {
|
||||
fprintf( stderr, "%s: -H incompatible with -h\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldapport ) {
|
||||
fprintf( stderr, "%s: -H incompatible with -p\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldapuri != NULL ) {
|
||||
fprintf( stderr, "%s: -H previously specified\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
ldapuri = strdup( optarg );
|
||||
break;
|
||||
case 'I':
|
||||
#ifdef HAVE_CYRUS_SASL
|
||||
if( version == LDAP_VERSION2 ) {
|
||||
@ -515,10 +535,26 @@ main(int argc, char **argv)
|
||||
(void) SIGNAL( SIGPIPE, SIG_IGN );
|
||||
#endif
|
||||
|
||||
if (( ld = ldap_init( ldaphost, ldapport )) == NULL ) {
|
||||
perror( "ldap_init" );
|
||||
return( EXIT_FAILURE );
|
||||
}
|
||||
if( ( ldaphost != NULL || ldapport ) && ( ldapuri == NULL ) ) {
|
||||
if ( verbose ) {
|
||||
fprintf( stderr, "ldap_init( %s, %d )\n",
|
||||
ldaphost != NULL ? ldaphost : "<DEFAULT>",
|
||||
ldapport );
|
||||
}
|
||||
ld = ldap_init( ldaphost, ldapport );
|
||||
|
||||
} else {
|
||||
if ( verbose ) {
|
||||
fprintf( stderr, "ldap_initialize( %s )\n",
|
||||
ldapuri != NULL ? ldapuri : "<DEFAULT>" );
|
||||
}
|
||||
(void) ldap_initialize( &ld, ldapuri );
|
||||
}
|
||||
|
||||
if( ld != NULL ) {
|
||||
fprintf( stderr, "Could not create LDAP session handle (%d): %s\n", rc );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
/* referrals */
|
||||
if( ldap_set_option( ld, LDAP_OPT_REFERRALS,
|
||||
|
@ -41,7 +41,8 @@ usage(const char *s)
|
||||
" -d level set LDAP debugging level to `level'\n"
|
||||
" -D binddn bind DN\n"
|
||||
" -f file read operations from `file'\n"
|
||||
" -h host LDAP server\n"
|
||||
" -h host LDAP server(s)\n"
|
||||
" -H URI LDAP Uniform Resource Indentifier(s)\n"
|
||||
" -I use SASL Interactive mode\n"
|
||||
" -n show what would be done but don't actually search\n"
|
||||
" -O props SASL security properties\n"
|
||||
@ -67,6 +68,7 @@ main( int argc, char *argv[] )
|
||||
int rc;
|
||||
char *prog = NULL;
|
||||
char *ldaphost = NULL;
|
||||
char *ldapuri = NULL;
|
||||
|
||||
char *dn = NULL;
|
||||
char *binddn = NULL;
|
||||
@ -96,7 +98,7 @@ main( int argc, char *argv[] )
|
||||
#endif
|
||||
int use_tls = 0;
|
||||
int referrals = 0;
|
||||
LDAP *ld;
|
||||
LDAP *ld = NULL;
|
||||
struct berval *bv = NULL;
|
||||
|
||||
int id, code;
|
||||
@ -111,7 +113,7 @@ main( int argc, char *argv[] )
|
||||
usage (argv[0]);
|
||||
|
||||
while( (i = getopt( argc, argv,
|
||||
"Aa:Ss:" "Cd:D:h:InO:p:QRU:vw:WxX:Y:Z" )) != EOF )
|
||||
"Aa:Ss:" "Cd:D:h:H:InO:p:QRU:vw:WxX:Y:Z" )) != EOF )
|
||||
{
|
||||
switch (i) {
|
||||
/* Password Options */
|
||||
@ -161,12 +163,31 @@ main( int argc, char *argv[] )
|
||||
binddn = strdup( optarg );
|
||||
break;
|
||||
case 'h': /* ldap host */
|
||||
if( ldapuri != NULL ) {
|
||||
fprintf( stderr, "%s: -h incompatible with -H\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldaphost != NULL ) {
|
||||
fprintf( stderr, "%s: -h previously specified\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
ldaphost = strdup( optarg );
|
||||
break;
|
||||
case 'H': /* ldap URI */
|
||||
if( ldaphost != NULL ) {
|
||||
fprintf( stderr, "%s: -H incompatible with -h\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldapport ) {
|
||||
fprintf( stderr, "%s: -H incompatible with -p\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldapuri != NULL ) {
|
||||
fprintf( stderr, "%s: -H previously specified\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
ldapuri = strdup( optarg );
|
||||
break;
|
||||
case 'I':
|
||||
#ifdef HAVE_CYRUS_SASL
|
||||
if( version == LDAP_VERSION2 ) {
|
||||
@ -542,8 +563,24 @@ main( int argc, char *argv[] )
|
||||
#endif
|
||||
|
||||
/* connect to server */
|
||||
if ((ld = ldap_init( ldaphost, ldapport )) == NULL) {
|
||||
perror("ldap_init");
|
||||
if( ( ldaphost != NULL || ldapport ) && ( ldapuri == NULL ) ) {
|
||||
if ( verbose ) {
|
||||
fprintf( stderr, "ldap_init( %s, %d )\n",
|
||||
ldaphost != NULL ? ldaphost : "<DEFAULT>",
|
||||
ldapport );
|
||||
}
|
||||
ld = ldap_init( ldaphost, ldapport );
|
||||
|
||||
} else {
|
||||
if ( verbose ) {
|
||||
fprintf( stderr, "ldap_initialize( %s )\n",
|
||||
ldapuri != NULL ? ldapuri : "<DEFAULT>" );
|
||||
}
|
||||
(void) ldap_initialize( &ld, ldapuri );
|
||||
}
|
||||
|
||||
if( ld != NULL ) {
|
||||
fprintf( stderr, "Could not create LDAP session handle (%d): %s\n", rc );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
|
@ -145,6 +145,7 @@ static char *binddn = NULL;
|
||||
static struct berval passwd = { 0, NULL };
|
||||
static char *base = NULL;
|
||||
static char *ldaphost = NULL;
|
||||
static char *ldapuri = NULL;
|
||||
static int ldapport = 0;
|
||||
#ifdef HAVE_CYRUS_SASL
|
||||
static unsigned sasl_flags = LDAP_SASL_AUTOMATIC;
|
||||
@ -166,7 +167,7 @@ main( int argc, char **argv )
|
||||
int rc, i, first, scope, deref, attrsonly, manageDSAit;
|
||||
int referrals, timelimit, sizelimit, debug;
|
||||
int authmethod, version, want_bindpw;
|
||||
LDAP *ld;
|
||||
LDAP *ld = NULL;
|
||||
|
||||
infile = NULL;
|
||||
debug = verbose = not = vals2tmp = referrals =
|
||||
@ -180,7 +181,7 @@ main( int argc, char **argv )
|
||||
prog = (prog = strrchr(argv[0], *LDAP_DIRSEP)) == NULL ? argv[0] : prog + 1;
|
||||
|
||||
while (( i = getopt( argc, argv,
|
||||
"Aa:b:f:Ll:S:s:T:tuV:z:" "Cd:D:h:IkKMnO:p:P:QRU:vw:WxX:Y:Z")) != EOF )
|
||||
"Aa:b:f:Ll:S:s:T:tuV:z:" "Cd:D:h:H:IkKMnO:p:P:QRU:vw:WxX:Y:Z")) != EOF )
|
||||
{
|
||||
switch( i ) {
|
||||
/* Search Options */
|
||||
@ -265,12 +266,31 @@ main( int argc, char **argv )
|
||||
binddn = strdup( optarg );
|
||||
break;
|
||||
case 'h': /* ldap host */
|
||||
if( ldapuri != NULL ) {
|
||||
fprintf( stderr, "%s: -h incompatible with -H\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldaphost != NULL ) {
|
||||
fprintf( stderr, "%s: -h previously specified\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
ldaphost = strdup( optarg );
|
||||
break;
|
||||
case 'H': /* ldap URI */
|
||||
if( ldaphost != NULL ) {
|
||||
fprintf( stderr, "%s: -H incompatible with -h\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldapport ) {
|
||||
fprintf( stderr, "%s: -H incompatible with -p\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
if( ldapuri != NULL ) {
|
||||
fprintf( stderr, "%s: -H previously specified\n" );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
ldapuri = strdup( optarg );
|
||||
break;
|
||||
case 'I':
|
||||
#ifdef HAVE_CYRUS_SASL
|
||||
if( version == LDAP_VERSION2 ) {
|
||||
@ -642,15 +662,25 @@ main( int argc, char **argv )
|
||||
(void) SIGNAL( SIGPIPE, SIG_IGN );
|
||||
#endif
|
||||
|
||||
if ( verbose ) {
|
||||
fprintf( stderr,
|
||||
(ldapport ? "ldap_init( %s, %d )\n" : "ldap_init( %s, <DEFAULT> )\n"),
|
||||
(ldaphost != NULL) ? ldaphost : "<DEFAULT>",
|
||||
ldapport );
|
||||
|
||||
if( ( ldaphost != NULL || ldapport ) && ( ldapuri == NULL ) ) {
|
||||
if ( verbose ) {
|
||||
fprintf( stderr, "ldap_init( %s, %d )\n",
|
||||
ldaphost != NULL ? ldaphost : "<DEFAULT>",
|
||||
ldapport );
|
||||
}
|
||||
ld = ldap_init( ldaphost, ldapport );
|
||||
|
||||
} else {
|
||||
if ( verbose ) {
|
||||
fprintf( stderr, "ldap_initialize( %s )\n",
|
||||
ldapuri != NULL ? ldapuri : "<DEFAULT>" );
|
||||
}
|
||||
(void) ldap_initialize( &ld, ldapuri );
|
||||
}
|
||||
|
||||
if (( ld = ldap_init( ldaphost, ldapport )) == NULL ) {
|
||||
perror( "ldap_init" );
|
||||
if( ld != NULL ) {
|
||||
fprintf( stderr, "Could not create LDAP session handle (%d): %s\n", rc );
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user