summaryrefslogtreecommitdiff
path: root/source4/libcli/ldap/ldap_ndr.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/libcli/ldap/ldap_ndr.c')
-rw-r--r--source4/libcli/ldap/ldap_ndr.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/source4/libcli/ldap/ldap_ndr.c b/source4/libcli/ldap/ldap_ndr.c
index 45d9b2729e..2db85d8f09 100644
--- a/source4/libcli/ldap/ldap_ndr.c
+++ b/source4/libcli/ldap/ldap_ndr.c
@@ -74,3 +74,19 @@ const char *ldap_encode_ndr_GUID(TALLOC_CTX *mem_ctx, struct GUID *guid)
data_blob_free(&blob);
return ret;
}
+
+/*
+ decode a NDR GUID from a ldap filter element
+*/
+NTSTATUS ldap_decode_ndr_GUID(TALLOC_CTX *mem_ctx, struct ldap_val val, struct GUID *guid)
+{
+ DATA_BLOB blob;
+ NTSTATUS status;
+
+ blob.data = val.data;
+ blob.length = val.length;
+ status = ndr_pull_struct_blob(&blob, mem_ctx, guid,
+ (ndr_pull_flags_fn_t)ndr_pull_GUID);
+ talloc_free(val.data);
+ return status;
+}