s4-drs: Using dsdb_msg_add_guid() utility function
authorFernando J V da Silva <fernandojvsilva@yahoo.com.br>
Wed, 25 Nov 2009 20:01:55 +0000 (17:01 -0300)
committerAndrew Tridgell <tridge@samba.org>
Mon, 30 Nov 2009 10:17:27 +0000 (21:17 +1100)
Uses the dsdb_msg_add_guid() to add any kind of GUID attribute
to a ldb_message in several places of samba4 code.

Signed-off-by: Andrew Tridgell <tridge@samba.org>
source4/dsdb/samdb/ldb_modules/objectguid.c
source4/dsdb/samdb/ldb_modules/repl_meta_data.c
source4/dsdb/samdb/ldb_modules/samldb.c
source4/utils/oLschema2ldif.c

index 12dd402617205a12fde9cf0cd746ba4b885ac262..bfbf2b4511d06dd1867ff27db28fba7ddf45a463 100644 (file)
@@ -31,6 +31,7 @@
 
 #include "includes.h"
 #include "ldb_module.h"
+#include "dsdb/samdb/samdb.h"
 #include "librpc/gen_ndr/ndr_misc.h"
 #include "param/param.h"
 
@@ -136,10 +137,8 @@ static int objectguid_add(struct ldb_module *module, struct ldb_request *req)
        struct ldb_request *down_req;
        struct ldb_message_element *attribute;
        struct ldb_message *msg;
-       struct ldb_val v;
        struct GUID guid;
        uint64_t seq_num;
-       enum ndr_err_code ndr_err;
        int ret;
        time_t t = time(NULL);
        struct og_context *ac;
@@ -174,15 +173,7 @@ static int objectguid_add(struct ldb_module *module, struct ldb_request *req)
        /* a new GUID */
        guid = GUID_random();
 
-       ndr_err = ndr_push_struct_blob(&v, msg, 
-                                      lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
-                                      &guid,
-                                      (ndr_push_flags_fn_t)ndr_push_GUID);
-       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
-               return LDB_ERR_OPERATIONS_ERROR;
-       }
-
-       ret = ldb_msg_add_value(msg, "objectGUID", &v, NULL);
+       ret = dsdb_msg_add_guid(msg, &guid, "objectGUID");
        if (ret) {
                return ret;
        }
index 37aa399ef19bf6d7a76bdf4d7ec44a48ec76b763..bfde2df1d167673e18ccc595a4a9b2834e9296be 100644 (file)
@@ -411,7 +411,6 @@ static int replmd_add(struct ldb_module *module, struct ldb_request *req)
        struct ldb_message *msg;
         const DATA_BLOB *guid_blob;
        struct GUID guid;
-       struct ldb_val guid_value;
        struct replPropertyMetaDataBlob nmd;
        struct ldb_val nmd_value;
        const struct GUID *our_invocation_id;
@@ -580,15 +579,6 @@ static int replmd_add(struct ldb_module *module, struct ldb_request *req)
        }
 
        /* generated NDR encoded values */
-       ndr_err = ndr_push_struct_blob(&guid_value, msg, 
-                                      NULL,
-                                      &guid,
-                                      (ndr_push_flags_fn_t)ndr_push_GUID);
-       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
-               ldb_oom(ldb);
-               talloc_free(ac);
-               return LDB_ERR_OPERATIONS_ERROR;
-       }
        ndr_err = ndr_push_struct_blob(&nmd_value, msg, 
                                       lp_iconv_convenience(ldb_get_opaque(ldb, "loadparm")),
                                       &nmd,
@@ -602,7 +592,7 @@ static int replmd_add(struct ldb_module *module, struct ldb_request *req)
        /*
         * add the autogenerated values
         */
-       ret = ldb_msg_add_value(msg, "objectGUID", &guid_value, NULL);
+       ret = dsdb_msg_add_guid(msg, &guid, "objectGUID");
        if (ret != LDB_SUCCESS) {
                ldb_oom(ldb);
                talloc_free(ac);
index c5161dbe4127a27021551d5c127e397710d47408..e49b493a984b6a4f23dc06f538fbeed061acd5d9 100644 (file)
@@ -1161,21 +1161,10 @@ static int samldb_fill_object(struct samldb_ctx *ac, const char *type)
                }
 
                if (!ldb_msg_find_element(ac->msg, "schemaIDGUID")) {
-                       enum ndr_err_code ndr_err;
-                       struct ldb_val guid_value;
                        struct GUID guid;
                        /* a new GUID */
                        guid = GUID_random();
-                       /* generated NDR encoded values */
-                       ndr_err = ndr_push_struct_blob(&guid_value, ac->msg,
-                                                      NULL,
-                                                      &guid,
-                                                      (ndr_push_flags_fn_t)ndr_push_GUID);
-                       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
-                               ldb_oom(ldb);
-                               return LDB_ERR_OPERATIONS_ERROR;
-                       }
-                       ret = ldb_msg_add_value(ac->msg, "schemaIDGUID", &guid_value, NULL);
+                       ret = dsdb_msg_add_guid(ac->msg, &guid, "schemaIDGUID");
                        if (ret != LDB_SUCCESS) {
                                ldb_oom(ldb);
                                return ret;
@@ -1211,21 +1200,10 @@ static int samldb_fill_object(struct samldb_ctx *ac, const char *type)
                if (ret != LDB_SUCCESS) return ret;
 
                if (!ldb_msg_find_element(ac->msg, "schemaIDGUID")) {
-                       enum ndr_err_code ndr_err;
-                       struct ldb_val guid_value;
                        struct GUID guid;
                        /* a new GUID */
                        guid = GUID_random();
-                       /* generated NDR encoded values */
-                       ndr_err = ndr_push_struct_blob(&guid_value, ac->msg,
-                                                      NULL,
-                                                      &guid,
-                                                      (ndr_push_flags_fn_t)ndr_push_GUID);
-                       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
-                               ldb_oom(ldb);
-                               return LDB_ERR_OPERATIONS_ERROR;
-                       }
-                       ret = ldb_msg_add_value(ac->msg, "schemaIDGUID", &guid_value, NULL);
+                       ret = dsdb_msg_add_guid(ac->msg, &guid, "schemaIDGUID");
                        if (ret != LDB_SUCCESS) {
                                ldb_oom(ldb);
                                return ret;
index f337432b6b1de32c7c1a66b115e55c68129a07d2..22a458c4422db27751c581f4b5937bdf1ccd1c2c 100644 (file)
@@ -399,14 +399,7 @@ static struct ldb_message *process_entry(TALLOC_CTX *mem_ctx, const char *entry)
 
        memcpy(&guid, digest, sizeof(struct GUID));
 
-       ndr_err = ndr_push_struct_blob(&schemaIdGuid, ctx, NULL, &guid,
-                       (ndr_push_flags_fn_t)ndr_push_GUID);
-
-       if (!NDR_ERR_CODE_IS_SUCCESS(ndr_err)) {
-               goto failed;
-       }
-
-       if (ldb_msg_add_value(msg, "schemaIdGuid", &schemaIdGuid, NULL) != 0) {
+       if (dsdb_msg_add_guid(msg, &guid, "schemaIdGuid") != 0) {
                goto failed;
        }