From da5c17aa1e262b6ffbccf1972f2880e660125ec4 Mon Sep 17 00:00:00 2001 From: Luke Howard Date: Fri, 10 Feb 2006 08:11:53 +0000 Subject: [PATCH] Use : to separate OID/data in exop - will use :: for base64 encoding data --- clients/tools/ldapexop.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/clients/tools/ldapexop.c b/clients/tools/ldapexop.c index f341fa0565..e54dbf32e1 100644 --- a/clients/tools/ldapexop.c +++ b/clients/tools/ldapexop.c @@ -42,7 +42,7 @@ void usage( void ) { fprintf( stderr, _("Issue LDAP extended operations\n\n")); - fprintf( stderr, _("usage: %s [options] [oid [data]]\n"), prog); + fprintf( stderr, _("usage: %s [options] [oid[:data]]\n"), prog); tool_common_usage(); exit( EXIT_FAILURE ); } @@ -185,16 +185,24 @@ main( int argc, char *argv[] ) } else if ( tool_is_oid( argv[ 0 ] ) ) { struct berval reqdata; struct berval *reqdatap; + char *p; - if ( argc > 2 ) { + if ( argc > 1 ) { usage(); - } else if ( argc == 2 ) { - reqdata.bv_val = argv[ 1 ]; - reqdata.bv_len = strlen( argv[ 1 ] ); + } + + p = strchr( argv[ 0 ], ':' ); + if ( p != NULL ) { + *p++ = '\0'; + + reqdata.bv_val = p; + reqdata.bv_len = strlen( reqdata.bv_val ); reqdatap = &reqdata; } else reqdatap = NULL; + tool_server_controls( ld, NULL, 0 ); + rc = ldap_extended_operation( ld, argv[ 0 ], reqdatap, NULL, NULL, &id ); if ( rc != LDAP_SUCCESS ) { tool_perror( "ldap_extended_operation", rc, NULL, NULL, NULL, NULL ); -- 2.39.5