From a412a0529de32b4b23c6fc66fc05f849fcb32b84 Mon Sep 17 00:00:00 2001 From: Kurt Zeilenga Date: Tue, 25 Jan 2000 00:05:36 +0000 Subject: [PATCH] Have compare use get_ava(). Well help when we split assertion options out from the description. --- servers/slapd/compare.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/servers/slapd/compare.c b/servers/slapd/compare.c index 0454281b71..d6f44970ae 100644 --- a/servers/slapd/compare.c +++ b/servers/slapd/compare.c @@ -57,8 +57,7 @@ do_compare( * } */ - if ( ber_scanf( op->o_ber, "{a{ao}}", &dn, &ava.ava_type, - &ava.ava_value ) == LBER_ERROR ) { + if ( ber_scanf( op->o_ber, "{a" /*}*/, &dn ) == LBER_ERROR ) { Debug( LDAP_DEBUG_ANY, "ber_scanf failed\n", 0, 0, 0 ); send_ldap_disconnect( conn, op, LDAP_PROTOCOL_ERROR, "decoding error" ); @@ -74,13 +73,25 @@ do_compare( goto cleanup; } + if ( get_ava( op->o_ber, &ava ) != LDAP_SUCCESS ) { + Debug( LDAP_DEBUG_ANY, "do_compare: get ava failed\n", 0, 0, 0 ); + send_ldap_disconnect( conn, op, + LDAP_PROTOCOL_ERROR, "decoding error" ); + return -1; + } + + if ( ber_scanf( op->o_ber, /*{*/ "}" ) == LBER_ERROR ) { + Debug( LDAP_DEBUG_ANY, "ber_scanf failed\n", 0, 0, 0 ); + send_ldap_disconnect( conn, op, + LDAP_PROTOCOL_ERROR, "decoding error" ); + return -1; + } + if( ( rc = get_ctrls( conn, op, 1 )) != LDAP_SUCCESS ) { Debug( LDAP_DEBUG_ANY, "do_compare: get_ctrls failed\n", 0, 0, 0 ); goto cleanup; } - value_normalize( ava.ava_value.bv_val, attr_syntax( ava.ava_type ) ); - Debug( LDAP_DEBUG_ARGS, "do_compare: dn (%s) attr (%s) value (%s)\n", dn, ava.ava_type, ava.ava_value.bv_val ); -- 2.39.5