summaryrefslogtreecommitdiff
path: root/source4/libcli/ldap
diff options
context:
space:
mode:
authorMatthias Dieter Wallnöfer <mdw@samba.org>2010-06-20 12:19:31 +0200
committerMatthias Dieter Wallnöfer <mdw@samba.org>2010-06-20 18:52:29 +0200
commitad5e19f29e3d716579607e706b42a4e7d2ed11c4 (patch)
treec5e80c72875457f9f0a45e33ffd45cb6b4ed66fa /source4/libcli/ldap
parent065579b4c6a05de7fd867dbe0eb736b86a6bc5f7 (diff)
downloadsamba-ad5e19f29e3d716579607e706b42a4e7d2ed11c4.tar.gz
samba-ad5e19f29e3d716579607e706b42a4e7d2ed11c4.tar.bz2
samba-ad5e19f29e3d716579607e706b42a4e7d2ed11c4.zip
ldb:controls - add the "TREE_DELETE" control for allowing subtree deletes
Diffstat (limited to 'source4/libcli/ldap')
-rw-r--r--source4/libcli/ldap/ldap_controls.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/source4/libcli/ldap/ldap_controls.c b/source4/libcli/ldap/ldap_controls.c
index 037c69599d..7f99a9c0e9 100644
--- a/source4/libcli/ldap/ldap_controls.c
+++ b/source4/libcli/ldap/ldap_controls.c
@@ -445,6 +445,15 @@ static bool decode_notification_request(void *mem_ctx, DATA_BLOB in, void *_out)
return true;
}
+static bool decode_tree_delete_request(void *mem_ctx, DATA_BLOB in, void *_out)
+{
+ if (in.length != 0) {
+ return false;
+ }
+
+ return true;
+}
+
static bool decode_show_deleted_request(void *mem_ctx, DATA_BLOB in, void *_out)
{
if (in.length != 0) {
@@ -969,6 +978,16 @@ static bool encode_notification_request(void *mem_ctx, void *in, DATA_BLOB *out)
return true;
}
+static bool encode_tree_delete_request(void *mem_ctx, void *in, DATA_BLOB *out)
+{
+ if (in) {
+ return false;
+ }
+
+ *out = data_blob(NULL, 0);
+ return true;
+}
+
static bool encode_show_deleted_request(void *mem_ctx, void *in, DATA_BLOB *out)
{
if (in) {
@@ -1278,6 +1297,7 @@ static const struct ldap_control_handler ldap_known_controls[] = {
{ "1.2.840.113556.1.4.1504", decode_asq_control, encode_asq_control },
{ "1.2.840.113556.1.4.841", decode_dirsync_request, encode_dirsync_request },
{ "1.2.840.113556.1.4.528", decode_notification_request, encode_notification_request },
+ { "1.2.840.113556.1.4.805", decode_tree_delete_request, encode_tree_delete_request },
{ "1.2.840.113556.1.4.417", decode_show_deleted_request, encode_show_deleted_request },
{ "1.2.840.113556.1.4.2064", decode_show_recycled_request, encode_show_recycled_request },
{ "1.2.840.113556.1.4.2065", decode_show_deactivated_link_request, encode_show_deactivated_link_request },