From 1169dd3b50dfefa59b56cd1897bcd0b6c2ffb3be Mon Sep 17 00:00:00 2001 From: Crístian Deives Date: Thu, 19 Nov 2009 16:03:59 -0200 Subject: added new function "ldb_msg_add_dn" a helper function to a DN element to an ldb_msg using ldb_msg_add_string. Signed-off-by: Andrew Tridgell --- source4/lib/ldb/common/ldb_msg.c | 9 +++++++++ source4/lib/ldb/include/ldb.h | 2 ++ source4/lib/ldb/ldb_map/ldb_map_inbound.c | 10 +++------- 3 files changed, 14 insertions(+), 7 deletions(-) (limited to 'source4/lib/ldb') diff --git a/source4/lib/ldb/common/ldb_msg.c b/source4/lib/ldb/common/ldb_msg.c index 161a6b1f38..375751262f 100644 --- a/source4/lib/ldb/common/ldb_msg.c +++ b/source4/lib/ldb/common/ldb_msg.c @@ -258,6 +258,15 @@ int ldb_msg_add_steal_string(struct ldb_message *msg, return ldb_msg_add_steal_value(msg, attr_name, &val); } +/* + add a DN element to a message +*/ +int ldb_msg_add_dn(struct ldb_message *msg, const char *attr_name, + struct ldb_dn *dn) +{ + return ldb_msg_add_string(msg, attr_name, ldb_dn_get_linearized(dn)); +} + /* add a printf formatted element to a message */ diff --git a/source4/lib/ldb/include/ldb.h b/source4/lib/ldb/include/ldb.h index 2d42596ec6..1d0b533a33 100644 --- a/source4/lib/ldb/include/ldb.h +++ b/source4/lib/ldb/include/ldb.h @@ -1752,6 +1752,8 @@ int ldb_msg_add_steal_string(struct ldb_message *msg, const char *attr_name, char *str); int ldb_msg_add_string(struct ldb_message *msg, const char *attr_name, const char *str); +int ldb_msg_add_dn(struct ldb_message *msg, const char *attr_name, + struct ldb_dn *dn); int ldb_msg_add_fmt(struct ldb_message *msg, const char *attr_name, const char *fmt, ...) PRINTF_ATTRIBUTE(3,4); diff --git a/source4/lib/ldb/ldb_map/ldb_map_inbound.c b/source4/lib/ldb/ldb_map/ldb_map_inbound.c index 5a237ef28c..11ec9d2ced 100644 --- a/source4/lib/ldb/ldb_map/ldb_map_inbound.c +++ b/source4/lib/ldb/ldb_map/ldb_map_inbound.c @@ -362,7 +362,6 @@ int map_add(struct ldb_module *module, struct ldb_request *req) struct ldb_context *ldb; struct map_context *ac; struct ldb_message *remote_msg; - const char *dn; int ret; ldb = ldb_module_get_ctx(module); @@ -426,8 +425,7 @@ int map_add(struct ldb_module *module, struct ldb_request *req) /* Store remote DN in 'IS_MAPPED' */ /* TODO: use GUIDs here instead */ - dn = ldb_dn_alloc_linearized(ac->local_msg, remote_msg->dn); - if (ldb_msg_add_string(ac->local_msg, IS_MAPPED, dn) != 0) { + if (ldb_msg_add_dn(ac->local_msg, IS_MAPPED, remote_msg->dn) != 0) { return LDB_ERR_OPERATIONS_ERROR; } @@ -545,7 +543,6 @@ static int map_modify_do_local(struct map_context *ac) { struct ldb_request *local_req; struct ldb_context *ldb; - char *dn; int ret; ldb = ldb_module_get_ctx(ac->module); @@ -558,9 +555,8 @@ static int map_modify_do_local(struct map_context *ac) LDB_FLAG_MOD_ADD, NULL) != 0) { return LDB_ERR_OPERATIONS_ERROR; } - dn = ldb_dn_alloc_linearized(ac->local_msg, - ac->remote_req->op.mod.message->dn); - if (ldb_msg_add_string(ac->local_msg, IS_MAPPED, dn) != 0) { + if (ldb_msg_add_dn(ac->local_msg, IS_MAPPED, + ac->remote_req->op.mod.message->dn) != 0) { return LDB_ERR_OPERATIONS_ERROR; } -- cgit