1
0
mirror of https://github.com/samba-team/samba.git synced 2025-08-26 01:49:31 +03:00

Removed ldb_modify_ctrl from ldb, implemented as a static in ldap_backend.

This commit is contained in:
Nadezhda Ivanova
2009-12-15 20:29:20 +02:00
parent b85f6f63e6
commit 4330efe0f2
3 changed files with 47 additions and 32 deletions

View File

@ -171,6 +171,48 @@ static int map_ldb_error(TALLOC_CTX *mem_ctx, int ldb_err,
/* result is 1:1 for now */
return ldb_err;
}
/* create and execute a modify request */
static int ldb_mod_req_with_controls(struct ldb_context *ldb,
const struct ldb_message *message,
struct ldb_control **controls)
{
struct ldb_request *req;
int ret;
ret = ldb_msg_sanity_check(ldb, message);
if (ret != LDB_SUCCESS) {
return ret;
}
ret = ldb_build_mod_req(&req, ldb, ldb,
message,
controls,
NULL,
ldb_op_default_callback,
NULL);
if (ret != LDB_SUCCESS) {
return ret;
}
ret = ldb_transaction_start(ldb);
if (ret != LDB_SUCCESS) {
return ret;
}
ret = ldb_request(ldb, req);
if (ret == LDB_SUCCESS) {
ret = ldb_wait(req->handle, LDB_WAIT_ALL);
}
if (ret == LDB_SUCCESS) {
return ldb_transaction_commit(ldb);
}
ldb_transaction_cancel(ldb);
talloc_free(req);
return ret;
}
/*
connect to the sam database
@ -546,7 +588,7 @@ reply:
NT_STATUS_HAVE_NO_MEMORY(modify_reply);
if (result == LDAP_SUCCESS) {
ldb_ret = ldb_modify_ctrl(samdb, msg, call->request->controls);
ldb_ret = ldb_mod_req_with_controls(samdb, msg, call->request->controls);
result = map_ldb_error(local_ctx, ldb_ret, &errstr);
}

View File

@ -1388,11 +1388,10 @@ int ldb_add(struct ldb_context *ldb,
}
/*
same as ldb_modify, but accepts controls
modify the specified attributes of a record
*/
int ldb_modify_ctrl(struct ldb_context *ldb,
const struct ldb_message *message,
struct ldb_control **controls)
int ldb_modify(struct ldb_context *ldb,
const struct ldb_message *message)
{
struct ldb_request *req;
int ret;
@ -1404,7 +1403,7 @@ int ldb_modify_ctrl(struct ldb_context *ldb,
ret = ldb_build_mod_req(&req, ldb, ldb,
message,
controls,
NULL,
NULL,
ldb_op_default_callback,
NULL);
@ -1417,14 +1416,6 @@ int ldb_modify_ctrl(struct ldb_context *ldb,
talloc_free(req);
return ret;
}
/*
modify the specified attributes of a record
*/
int ldb_modify(struct ldb_context *ldb,
const struct ldb_message *message)
{
return ldb_modify_ctrl(ldb, message, NULL);
}
/*

View File

@ -1222,24 +1222,6 @@ int ldb_search(struct ldb_context *ldb, TALLOC_CTX *mem_ctx,
int ldb_add(struct ldb_context *ldb,
const struct ldb_message *message);
/**
Modify the specified attributes of a record
This function modifies a record that is in the database.
\param ldb the context associated with the database (from
ldb_init())
\param message the message containing the changes required.
\param controls ldap controls for the request
\return result code (LDB_SUCCESS if the record was modified as
requested, otherwise a failure code)
*/
int ldb_modify_ctrl(struct ldb_context *ldb,
const struct ldb_message *message,
struct ldb_control **controls);
/**
Modify the specified attributes of a record