X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=libraries%2Flibldap%2Fdelete.c;h=b7dd170d0269fafb1a471221ff4c59309fc37f15;hb=4d29df5bd1fabcdc50975651c746365686b62b53;hp=71070d239435688c90eb5cae0e2dbc789aca3772;hpb=3d9c49f9829b693d525420edf20673abd059d0c0;p=openldap diff --git a/libraries/libldap/delete.c b/libraries/libldap/delete.c index 71070d2394..b7dd170d02 100644 --- a/libraries/libldap/delete.c +++ b/libraries/libldap/delete.c @@ -1,12 +1,28 @@ +/* $OpenLDAP$ */ +/* This work is part of OpenLDAP Software . + * + * Copyright 1998-2003 The OpenLDAP Foundation. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. + * + * A copy of this license is available in the file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . + */ +/* Portions Copyright (c) 1990 Regents of the University of Michigan. + * All rights reserved. + */ /* - * Copyright 1998-1999 The OpenLDAP Foundation, All Rights Reserved. - * COPYING RESTRICTIONS APPLY, see COPYRIGHT file + * Portions Copyright (C) The Internet Society (1997) + * ASN.1 fragments are from RFC 2251; see RFC for full legal notices. */ -/* Portions - * Copyright (c) 1990 Regents of the University of Michigan. - * All rights reserved. - * - * delete.c + +/* + * A delete request looks like this: + * DelRequet ::= DistinguishedName, */ #include "portable.h" @@ -39,23 +55,35 @@ ldap_delete_ext( LDAPControl **cctrls, int *msgidp ) { + int rc; BerElement *ber; + ber_int_t id; - /* - * A delete request looks like this: - * DelRequet ::= DistinguishedName, - */ +#ifdef NEW_LOGGING + LDAP_LOG ( OPERATION, ENTRY, "ldap_delete_ext\n", 0,0,0 ); +#else + Debug( LDAP_DEBUG_TRACE, "ldap_delete_ext\n", 0, 0, 0 ); +#endif - Debug( LDAP_DEBUG_TRACE, "ldap_delete\n", 0, 0, 0 ); + assert( ld != NULL ); + assert( LDAP_VALID( ld ) ); + 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 - '}' */ - ++ld->ld_msgid, LDAP_REQ_DELETE, dn ) == -1 ) + LDAP_NEXT_MSGID( ld, id ); + rc = ber_printf( ber, "{its", /* '}' */ + id, LDAP_REQ_DELETE, dn ); + if ( rc == -1 ) { ld->ld_errno = LDAP_ENCODING_ERROR; ber_free( ber, 1 ); @@ -68,15 +96,14 @@ 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 ); } /* send the message */ - *msgidp = ldap_send_initial_request( ld, LDAP_REQ_DELETE, dn, ber ); + *msgidp = ldap_send_initial_request( ld, LDAP_REQ_DELETE, dn, ber, id ); if(*msgidp < 0) return ld->ld_errno; @@ -124,7 +151,11 @@ ldap_delete( LDAP *ld, LDAP_CONST char *dn ) * DelRequet ::= DistinguishedName, */ +#ifdef NEW_LOGGING + LDAP_LOG ( OPERATION, ENTRY, "ldap_delete\n", 0,0,0 ); +#else Debug( LDAP_DEBUG_TRACE, "ldap_delete\n", 0, 0, 0 ); +#endif return ldap_delete_ext( ld, dn, NULL, NULL, &msgid ) == LDAP_SUCCESS ? msgid : -1 ;