]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/delete.c
Import cache_delete_entry_internal/dntree&idtree delete fix from -devel.
[openldap] / servers / slapd / delete.c
index bbab47806c0d7d24d7181125d39cfc485bdc898f..41ec2e2a29555d960a59a3d726aeef0399a619c2 100644 (file)
  * is provided ``as is'' without express or implied warranty.
  */
 
+#include "portable.h"
+
 #include <stdio.h>
-#include <string.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include "slap.h"
 
-extern Backend *select_backend();
+#include <ac/string.h>
+#include <ac/socket.h>
 
-extern char    *default_referral;
+#include "slap.h"
 
 void
 do_delete(
@@ -42,7 +41,7 @@ do_delete(
                send_ldap_result( conn, op, LDAP_PROTOCOL_ERROR, NULL, "" );
                return;
        }
-       odn = strdup( dn );
+       odn = ch_strdup( dn );
        dn_normalize( dn );
 
        Debug( LDAP_DEBUG_ARGS, "do_delete: dn (%s)\n", dn, 0, 0 );
@@ -62,6 +61,9 @@ do_delete(
                return;
        }
 
+        /* alias suffix if approp */
+        dn = suffixAlias ( dn, op, be );
+
        /*
         * do the delete if 1 && (2 || 3)
         * 1) there is a delete function implemented in this backend;