libcli/security: fix sid_type_lookup().
[kai/samba.git] / libcli / ldap / ldap_ndr.c
index dd820ff8d5fcde86cb695061ce2218543ef41095..6daaba360432e52cfbf2402221e79d2c1824f264 100644 (file)
 */
 
 #include "includes.h"
+#if _SAMBA_BUILD_ == 3
+#include "lib/ldb_compat.h"
+#else
 #include "lib/ldb/include/ldb.h"
+#endif
 #include "librpc/gen_ndr/ndr_security.h"
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "libcli/ldap/ldap_ndr.h"
@@ -47,7 +51,7 @@ char *ldap_encode_ndr_dom_sid(TALLOC_CTX *mem_ctx, const struct dom_sid *sid)
        DATA_BLOB blob;
        enum ndr_err_code ndr_err;
        char *ret;
-       ndr_err = ndr_push_struct_blob(&blob, mem_ctx, NULL, sid,
+       ndr_err = ndr_push_struct_blob(&blob, mem_ctx, sid,
                                       (ndr_push_flags_fn_t)ndr_push_dom_sid);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
                return NULL;
@@ -61,14 +65,13 @@ char *ldap_encode_ndr_dom_sid(TALLOC_CTX *mem_ctx, const struct dom_sid *sid)
 /*
   encode a NDR GUID as a ldap filter element
 */
-char *ldap_encode_ndr_GUID(TALLOC_CTX *mem_ctx, struct GUID *guid)
+char *ldap_encode_ndr_GUID(TALLOC_CTX *mem_ctx, const struct GUID *guid)
 {
        DATA_BLOB blob;
-       enum ndr_err_code ndr_err;
+       NTSTATUS status;
        char *ret;
-       ndr_err = ndr_push_struct_blob(&blob, mem_ctx, NULL, guid,
-                                      (ndr_push_flags_fn_t)ndr_push_GUID);
-       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
+       status = GUID_to_ndr_blob(guid, mem_ctx, &blob);
+       if (!NT_STATUS_IS_OK(status)) {
                return NULL;
        }
        ret = ldb_binary_encode(mem_ctx, blob);
@@ -86,7 +89,7 @@ NTSTATUS ldap_decode_ndr_GUID(TALLOC_CTX *mem_ctx, struct ldb_val val, struct GU
 
        blob.data = val.data;
        blob.length = val.length;
-       ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, NULL, guid,
+       ndr_err = ndr_pull_struct_blob(&blob, mem_ctx, guid,
                                       (ndr_pull_flags_fn_t)ndr_pull_GUID);
        talloc_free(val.data);
        if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {