summaryrefslogtreecommitdiff
path: root/source4/libcli/ldap/ldap_controls.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2009-07-23 17:52:23 +0200
committerStefan Metzmacher <metze@samba.org>2009-07-23 18:04:31 +0200
commitc4274e348047a66488a8b8d67ec88df0a06e1e64 (patch)
tree4bb2d7a6de540e6f06ba00716085abc2f852b08b /source4/libcli/ldap/ldap_controls.c
parent6c99345dd34c75b74822e0920d153c2477a294e3 (diff)
downloadsamba-c4274e348047a66488a8b8d67ec88df0a06e1e64.tar.gz
samba-c4274e348047a66488a8b8d67ec88df0a06e1e64.tar.bz2
samba-c4274e348047a66488a8b8d67ec88df0a06e1e64.zip
s4:libcli/ldap: add support for new Recycle Bin Feature LDAP Controls
LDAP_SERVER_SHOW_RECYCLED_OID 1.2.840.113556.1.4.2064 LDAP_SERVER_SHOW_DEACTIVATED_LINK_OID 1.2.840.113556.1.4.2065 metze
Diffstat (limited to 'source4/libcli/ldap/ldap_controls.c')
-rw-r--r--source4/libcli/ldap/ldap_controls.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/source4/libcli/ldap/ldap_controls.c b/source4/libcli/ldap/ldap_controls.c
index 48ac5424a0..aef775fab5 100644
--- a/source4/libcli/ldap/ldap_controls.c
+++ b/source4/libcli/ldap/ldap_controls.c
@@ -454,6 +454,24 @@ static bool decode_show_deleted_request(void *mem_ctx, DATA_BLOB in, void *_out)
return true;
}
+static bool decode_show_recycled_request(void *mem_ctx, DATA_BLOB in, void *_out)
+{
+ if (in.length != 0) {
+ return false;
+ }
+
+ return true;
+}
+
+static bool decode_show_deactivated_link_request(void *mem_ctx, DATA_BLOB in, void *_out)
+{
+ if (in.length != 0) {
+ return false;
+ }
+
+ return true;
+}
+
static bool decode_permissive_modify_request(void *mem_ctx, DATA_BLOB in, void *_out)
{
if (in.length != 0) {
@@ -961,6 +979,26 @@ static bool encode_show_deleted_request(void *mem_ctx, void *in, DATA_BLOB *out)
return true;
}
+static bool encode_show_recycled_request(void *mem_ctx, void *in, DATA_BLOB *out)
+{
+ if (in) {
+ return false;
+ }
+
+ *out = data_blob(NULL, 0);
+ return true;
+}
+
+static bool encode_show_deactivated_link_request(void *mem_ctx, void *in, DATA_BLOB *out)
+{
+ if (in) {
+ return false;
+ }
+
+ *out = data_blob(NULL, 0);
+ return true;
+}
+
static bool encode_permissive_modify_request(void *mem_ctx, void *in, DATA_BLOB *out)
{
if (in) {
@@ -1222,6 +1260,8 @@ static const struct ldap_control_handler ldap_known_controls[] = {
{ "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.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 },
{ "1.2.840.113556.1.4.1413", decode_permissive_modify_request, encode_permissive_modify_request },
{ "1.2.840.113556.1.4.801", decode_sd_flags_request, encode_sd_flags_request },
{ "1.2.840.113556.1.4.1339", decode_domain_scope_request, encode_domain_scope_request },