]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/delete.c
revert previous commit: do accept '\00'
[openldap] / libraries / libldap / delete.c
index b5602db2eb943abefd7dea3336e3a659b2cd572a..241de1a37c759fc2a2e0e315284edba2ab1483b5 100644 (file)
@@ -1,5 +1,6 @@
+/* $OpenLDAP$ */
 /*
- * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved.
+ * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved.
  * COPYING RESTRICTIONS APPLY, see COPYRIGHT file
  */
 /*  Portions
@@ -44,6 +45,7 @@ ldap_delete_ext(
        LDAPControl **cctrls,
        int *msgidp )
 {
+       int rc;
        BerElement      *ber;
 
        Debug( LDAP_DEBUG_TRACE, "ldap_delete\n", 0, 0, 0 );
@@ -53,13 +55,17 @@ ldap_delete_ext(
        assert( dn != NULL );
        assert( msgidp != NULL );
 
+       /* check client controls */
+       rc = ldap_int_client_controls( ld, cctrls );
+       if( rc != LDAP_SUCCESS ) return rc;
+
        /* create a message to send */
-       if ( (ber = ldap_alloc_ber_with_options( ld )) == NULLBER ) {
+       if ( (ber = ldap_alloc_ber_with_options( ld )) == NULL ) {
                ld->ld_errno = LDAP_NO_MEMORY;
                return( ld->ld_errno );
        }
 
-       if ( ber_printf( ber, "{its", /* leave open - '}' */
+       if ( ber_printf( ber, "{its", /* '}' */
                ++ld->ld_msgid, LDAP_REQ_DELETE, dn ) == -1 )
        {
                ld->ld_errno = LDAP_ENCODING_ERROR;
@@ -73,8 +79,7 @@ ldap_delete_ext(
                return ld->ld_errno;
        }
 
-       /* close '{' */
-       if ( ber_printf( ber, "}" ) == -1 ) {
+       if ( ber_printf( ber, /*{*/ "N}" ) == -1 ) {
                ld->ld_errno = LDAP_ENCODING_ERROR;
                ber_free( ber, 1 );
                return( ld->ld_errno );