Use : to separate OID/data in exop - will use :: for base64 encoding data

This commit is contained in:
Luke Howard 2006-02-10 08:11:53 +00:00
parent 4954adb7c1
commit da5c17aa1e

View file

@ -42,7 +42,7 @@ void
usage( void ) usage( void )
{ {
fprintf( stderr, _("Issue LDAP extended operations\n\n")); 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(); tool_common_usage();
exit( EXIT_FAILURE ); exit( EXIT_FAILURE );
} }
@ -185,16 +185,24 @@ main( int argc, char *argv[] )
} else if ( tool_is_oid( argv[ 0 ] ) ) { } else if ( tool_is_oid( argv[ 0 ] ) ) {
struct berval reqdata; struct berval reqdata;
struct berval *reqdatap; struct berval *reqdatap;
char *p;
if ( argc > 2 ) { if ( argc > 1 ) {
usage(); 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; reqdatap = &reqdata;
} else } else
reqdatap = NULL; reqdatap = NULL;
tool_server_controls( ld, NULL, 0 );
rc = ldap_extended_operation( ld, argv[ 0 ], reqdatap, NULL, NULL, &id ); rc = ldap_extended_operation( ld, argv[ 0 ], reqdatap, NULL, NULL, &id );
if ( rc != LDAP_SUCCESS ) { if ( rc != LDAP_SUCCESS ) {
tool_perror( "ldap_extended_operation", rc, NULL, NULL, NULL, NULL ); tool_perror( "ldap_extended_operation", rc, NULL, NULL, NULL, NULL );