/* $OpenLDAP$ */
/*
- * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved.
* COPYING RESTRICTIONS APPLY, see COPYRIGHT file
*/
#include "portable.h"
get_add_entry( char *filename, LDAPMod ***mods );
static void
-do_addel( char *host, int port, char *manager, char *passwd,
+do_addel( char *uri, char *host, int port, char *manager, char *passwd,
char *dn, LDAPMod **attrs, int maxloop );
static void
{
int i;
char *host = "localhost";
+ char *uri = NULL;
int port = -1;
char *manager = NULL;
char *passwd = NULL;
int loops = LOOPS;
LDAPMod **attrs = NULL;
- while ( (i = getopt( argc, argv, "h:p:D:w:f:l:" )) != EOF ) {
+ while ( (i = getopt( argc, argv, "H:h:p:D:w:f:l:" )) != EOF ) {
switch( i ) {
+ case 'H': /* the server's URI */
+ uri = strdup( optarg );
+ break;
case 'h': /* the servers host */
host = strdup( optarg );
break;
}
}
- if (( filename == NULL ) || ( port == -1 ) ||
+ if (( filename == NULL ) || ( port == -1 && uri == NULL ) ||
( manager == NULL ) || ( passwd == NULL ))
usage( argv[0] );
}
- do_addel( host, port, manager, passwd, entry, attrs, loops );
+ do_addel( uri, host, port, manager, passwd, entry, attrs, loops );
exit( EXIT_SUCCESS );
}
perror( "malloc" );
exit( EXIT_FAILURE );
}
- SAFEMEMCPY( bvp->bv_val, value, vlen );
+ AC_MEMCPY( bvp->bv_val, value, vlen );
bvp->bv_val[ vlen ] = '\0';
}
}
static void
do_addel(
+ char *uri,
char *host,
int port,
char *manager,
int maxloop
)
{
- LDAP *ld;
+ LDAP *ld = NULL;
int i;
pid_t pid = getpid();
- if (( ld = ldap_init( host, port )) == NULL ) {
+ if ( uri ) {
+ ldap_initialize( &ld, uri );
+ } else {
+ ld = ldap_init( host, port );
+ }
+ if ( ld == NULL ) {
perror( "ldap_init" );
exit( EXIT_FAILURE );
}
+ {
+ int version = LDAP_VERSION3;
+ (void) ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION,
+ &version );
+ }
+
if ( ldap_bind_s( ld, manager, passwd, LDAP_AUTH_SIMPLE )
!= LDAP_SUCCESS ) {
ldap_perror( ld, "ldap_bind" );