X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldap%2Fdelete.c;h=d545f77b14701c032cc8e4015cb0bc2b937f328b;hb=4d36fd5a3ed407b0a53004d1431f1669222138b4;hp=cd00c5469f5db0ffd05af1e3c818beb444d1ee70;hpb=395cc1d7bb959d8ea7cf663929a332d4af99195e;p=openldap diff --git a/servers/slapd/back-ldap/delete.c b/servers/slapd/back-ldap/delete.c index cd00c5469f..d545f77b14 100644 --- a/servers/slapd/back-ldap/delete.c +++ b/servers/slapd/back-ldap/delete.c @@ -1,7 +1,7 @@ /* delete.c - ldap backend delete function */ /* $OpenLDAP$ */ /* - * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ /* This is an altered version */ @@ -50,14 +50,14 @@ ldap_back_delete( Backend *be, Connection *conn, Operation *op, - const char *dn, - const char *ndn + struct berval *dn, + struct berval *ndn ) { struct ldapinfo *li = (struct ldapinfo *) be->be_private; struct ldapconn *lc; - char *mdn = NULL; + struct berval mdn = { 0, NULL }; lc = ldap_back_getconn( li, conn, op ); @@ -69,17 +69,17 @@ ldap_back_delete( * Rewrite the compare dn, if needed */ #ifdef ENABLE_REWRITE - switch ( rewrite_session( li->rwinfo, "deleteDn", dn, conn, &mdn ) ) { + switch ( rewrite_session( li->rwinfo, "deleteDn", dn->bv_val, conn, &mdn.bv_val ) ) { case REWRITE_REGEXEC_OK: - if ( mdn == NULL ) { - mdn = ( char * )dn; + if ( mdn.bv_val == NULL ) { + mdn.bv_val = ( char * )dn->bv_val; } #ifdef NEW_LOGGING - LDAP_LOG(( "backend", LDAP_LEVEL_DETAIL1, - "[rw] deleteDn: \"%s\" -> \"%s\"\n", dn, mdn )); + LDAP_LOG( BACK_LDAP, DETAIL1, + "[rw] deleteDn: \"%s\" -> \"%s\"\n", dn->bv_val, mdn.bv_val, 0 ); #else /* !NEW_LOGGING */ Debug( LDAP_DEBUG_ARGS, "rw> deleteDn: \"%s\" -> \"%s\"\n%s", - dn, mdn, "" ); + dn->bv_val, mdn.bv_val, "" ); #endif /* !NEW_LOGGING */ break; @@ -89,23 +89,19 @@ ldap_back_delete( return( -1 ); case REWRITE_REGEXEC_ERR: - send_ldap_result( conn, op, LDAP_OPERATIONS_ERROR, + send_ldap_result( conn, op, LDAP_OTHER, NULL, "Operations error", NULL, NULL ); return( -1 ); } #else /* !ENABLE_REWRITE */ - mdn = ldap_back_dn_massage( li, ch_strdup( dn ), 0 ); + ldap_back_dn_massage( li, dn, &mdn, 0, 1 ); #endif /* !ENABLE_REWRITE */ - ldap_delete_s( lc->ld, mdn ); + ldap_delete_s( lc->ld, mdn.bv_val ); -#ifdef ENABLE_REWRITE - if ( mdn != dn ) { -#endif /* ENABLE_REWRITE */ - free( mdn ); -#ifdef ENABLE_REWRITE + if ( mdn.bv_val != dn->bv_val ) { + free( mdn.bv_val ); } -#endif /* ENABLE_REWRITE */ return( ldap_back_op_result( lc, op ) ); }