]> git.sur5r.net Git - openldap/commitdiff
Added support for "-H" arg with LDAP uri / ldap_initialize
authorHoward Chu <hyc@openldap.org>
Thu, 13 Feb 2003 08:02:40 +0000 (08:02 +0000)
committerHoward Chu <hyc@openldap.org>
Thu, 13 Feb 2003 08:02:40 +0000 (08:02 +0000)
tests/progs/slapd-addel.c
tests/progs/slapd-read.c
tests/progs/slapd-search.c
tests/progs/slapd-tester.c

index 881fb1d17a99b69c3544565f4e992c0024fa6975..2d7a16f948207c5ec2a723989565b3d66310a0c7 100644 (file)
@@ -24,7 +24,7 @@ static char *
 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
@@ -40,6 +40,7 @@ main( int argc, char **argv )
 {
        int             i;
        char        *host = "localhost";
+       char            *uri = NULL;
        int                     port = -1;
        char            *manager = NULL;
        char            *passwd = NULL;
@@ -48,8 +49,11 @@ main( int argc, char **argv )
        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;
@@ -80,7 +84,7 @@ main( int argc, char **argv )
                }
        }
 
-       if (( filename == NULL ) || ( port == -1 ) ||
+       if (( filename == NULL ) || ( port == -1 && uri == NULL ) ||
                                ( manager == NULL ) || ( passwd == NULL ))
                usage( argv[0] );
 
@@ -101,7 +105,7 @@ main( int argc, char **argv )
 
        }
 
-       do_addel( host, port, manager, passwd, entry, attrs, loops );
+       do_addel( uri, host, port, manager, passwd, entry, attrs, loops );
 
        exit( EXIT_SUCCESS );
 }
@@ -223,6 +227,7 @@ get_add_entry( char *filename, LDAPMod ***mods )
 
 static void
 do_addel(
+       char *uri,
        char *host,
        int port,
        char *manager,
@@ -232,11 +237,16 @@ do_addel(
        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 );
        }
@@ -268,7 +278,7 @@ do_addel(
                }
 
                /* wait a second for the add to really complete */
-               sleep( 1 );
+               /* sleep( 1 ); */
 
                /* now delete the entry again */
                if ( ldap_delete_s( ld, entry ) != LDAP_SUCCESS ) {
index c3c27dea709c0a85bfb5157dc73ee96b642d2877..7acb5fb8f4a90aa330f3e590de7cf46264cea96c 100644 (file)
@@ -21,7 +21,7 @@
 #define LOOPS  100
 
 static void
-do_read( char *host, int port, char *entry, int maxloop );
+do_read( char *uri, char *host, int port, char *entry, int maxloop );
 
 static void
 usage( char *name )
@@ -35,13 +35,17 @@ int
 main( int argc, char **argv )
 {
        int             i;
+       char            *uri = NULL;
        char        *host = "localhost";
        int                     port = -1;
        char            *entry = NULL;
        int                     loops = LOOPS;
 
-       while ( (i = getopt( argc, argv, "h:p:e:l:" )) != EOF ) {
+       while ( (i = getopt( argc, argv, "H:h:p:e:l:" )) != EOF ) {
                switch( i ) {
+                       case 'H':               /* the server uri */
+                               uri = strdup( optarg );
+                       break;
                        case 'h':               /* the servers host */
                                host = strdup( optarg );
                        break;
@@ -64,7 +68,7 @@ main( int argc, char **argv )
                }
        }
 
-       if (( entry == NULL ) || ( port == -1 ))
+       if (( entry == NULL ) || ( port == -1 && uri == NULL ))
                usage( argv[0] );
 
        if ( *entry == '\0' ) {
@@ -75,20 +79,25 @@ main( int argc, char **argv )
 
        }
 
-       do_read( host, port, entry, ( 20 * loops ));
+       do_read( uri, host, port, entry, ( 20 * loops ));
        exit( EXIT_SUCCESS );
 }
 
 
 static void
-do_read( char *host, int port, char *entry, int maxloop )
+do_read( char *uri, char *host, int port, char *entry, int maxloop )
 {
-       LDAP    *ld;
+       LDAP    *ld = NULL;
        int     i;
        char    *attrs[] = { "1.1", NULL };
        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 );
        }
index 2febfdd3955f470b03460209e2ee2bc0a0fcf3d7..5830a01cae2e1cb59636a868d854498b6dabd696 100644 (file)
@@ -22,7 +22,7 @@
 #define LOOPS  100
 
 static void
-do_search( char *host, int port, char *sbase, char *filter, int maxloop );
+do_search( char *uri, char *host, int port, char *sbase, char *filter, int maxloop );
 
 static void
 usage( char *name )
@@ -36,14 +36,18 @@ int
 main( int argc, char **argv )
 {
        int             i;
+       char            *uri = NULL;
        char        *host = "localhost";
        int                     port = -1;
        char        *sbase = NULL;
        char            *filter  = NULL;
        int                     loops = LOOPS;
 
-       while ( (i = getopt( argc, argv, "h:p:b:f:l:" )) != EOF ) {
+       while ( (i = getopt( argc, argv, "H:h:p:b:f:l:" )) != EOF ) {
                switch( i ) {
+                       case 'H':               /* the server uri */
+                               uri = strdup( optarg );
+                       break;
                        case 'h':               /* the servers host */
                                host = strdup( optarg );
                        break;
@@ -70,7 +74,7 @@ main( int argc, char **argv )
                }
        }
 
-       if (( sbase == NULL ) || ( filter == NULL ) || ( port == -1 ))
+       if (( sbase == NULL ) || ( filter == NULL ) || ( port == -1 && uri == NULL ))
                usage( argv[0] );
 
        if ( *filter == '\0' ) {
@@ -81,20 +85,25 @@ main( int argc, char **argv )
 
        }
 
-       do_search( host, port, sbase, filter, ( 10 * loops ));
+       do_search( uri, host, port, sbase, filter, ( 10 * loops ));
        exit( EXIT_SUCCESS );
 }
 
 
 static void
-do_search( char *host, int port, char *sbase, char *filter, int maxloop )
+do_search( char *uri, char *host, int port, char *sbase, char *filter, int maxloop )
 {
-       LDAP    *ld;
+       LDAP    *ld = NULL;
        int     i;
        char    *attrs[] = { "cn", "sn", NULL };
        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 );
        }
index c33ce6006103dd55342fd27d2df8c62f416c7514..f14c92ea0bdfb545e4f6fd99bed1c189e84395dd 100644 (file)
@@ -60,6 +60,7 @@ int
 main( int argc, char **argv )
 {
        int             i, j;
+       char            *uri = NULL;
        char            *host = "localhost";
        char            *port = NULL;
        char            *manager = NULL;
@@ -88,8 +89,12 @@ main( int argc, char **argv )
        int                     aanum;
        char            acmd[MAXPATHLEN];
 
-       while ( (i = getopt( argc, argv, "h:p:D:w:b:d:j:l:P:" )) != EOF ) {
+       while ( (i = getopt( argc, argv, "H:h:p:D:w:b:d:j:l:P:" )) != EOF ) {
                switch( i ) {
+                       case 'H':               /* slapd uri */
+                               uri = strdup( optarg );
+                       break;
+                               
                        case 'h':               /* slapd host */
                                host = strdup( optarg );
                        break;
@@ -132,7 +137,7 @@ main( int argc, char **argv )
                }
        }
 
-       if (( dirname == NULL ) || ( sbase == NULL ) || ( port == NULL ) ||
+       if (( dirname == NULL ) || ( sbase == NULL ) || ( port == NULL && uri == NULL ) ||
                        ( manager == NULL ) || ( passwd == NULL ) || ( progdir == NULL ))
                usage( argv[0] );
 
@@ -184,10 +189,15 @@ main( int argc, char **argv )
        snprintf( scmd, sizeof scmd, "%s" LDAP_DIRSEP SEARCHCMD,
                progdir );
        sargs[sanum++] = scmd;
-       sargs[sanum++] = "-h";
-       sargs[sanum++] = host;
-       sargs[sanum++] = "-p";
-       sargs[sanum++] = port;
+       if ( uri ) {
+               sargs[sanum++] = "-H";
+               sargs[sanum++] = uri;
+       } else {
+               sargs[sanum++] = "-h";
+               sargs[sanum++] = host;
+               sargs[sanum++] = "-p";
+               sargs[sanum++] = port;
+       }
        sargs[sanum++] = "-b";
        sargs[sanum++] = sbase;
        sargs[sanum++] = "-l";
@@ -204,10 +214,15 @@ main( int argc, char **argv )
        snprintf( rcmd, sizeof rcmd, "%s" LDAP_DIRSEP READCMD,
                progdir );
        rargs[ranum++] = rcmd;
-       rargs[ranum++] = "-h";
-       rargs[ranum++] = host;
-       rargs[ranum++] = "-p";
-       rargs[ranum++] = port;
+       if ( uri ) {
+               rargs[ranum++] = "-H";
+               rargs[ranum++] = uri;
+       } else {
+               rargs[ranum++] = "-h";
+               rargs[ranum++] = host;
+               rargs[ranum++] = "-p";
+               rargs[ranum++] = port;
+       }
        rargs[ranum++] = "-l";
        rargs[ranum++] = loops;
        rargs[ranum++] = "-e";
@@ -222,10 +237,15 @@ main( int argc, char **argv )
        snprintf( acmd, sizeof acmd, "%s" LDAP_DIRSEP ADDCMD,
                progdir );
        aargs[aanum++] = acmd;
-       aargs[aanum++] = "-h";
-       aargs[aanum++] = host;
-       aargs[aanum++] = "-p";
-       aargs[aanum++] = port;
+       if ( uri ) {
+               aargs[aanum++] = "-H";
+               aargs[aanum++] = uri;
+       } else {
+               aargs[aanum++] = "-h";
+               aargs[aanum++] = host;
+               aargs[aanum++] = "-p";
+               aargs[aanum++] = port;
+       }
        aargs[aanum++] = "-D";
        aargs[aanum++] = manager;
        aargs[aanum++] = "-w";