1
0
mirror of https://github.com/samba-team/samba.git synced 2025-01-26 10:04:02 +03:00

r20852: add a function to add a ldb control to a ldb_request

metze
(This used to be commit f0bf86ed66f7f9995df35db55f2f3875e7dbacbe)
This commit is contained in:
Stefan Metzmacher 2007-01-17 16:10:33 +00:00 committed by Gerald (Jerry) Carter
parent 64e88a8ccf
commit fb9dabe39e
2 changed files with 40 additions and 0 deletions

View File

@ -104,3 +104,31 @@ int check_critical_controls(struct ldb_control **controls)
return 0;
}
int ldb_request_add_control(struct ldb_request *req, const char *oid, bool critical, void *data)
{
unsigned n;
struct ldb_control **ctrls;
struct ldb_control *ctrl;
for (n=0; req->controls && req->controls[n];) { n++; }
ctrls = talloc_realloc(req, req->controls,
struct ldb_control *,
n + 2);
if (!ctrls) return LDB_ERR_OPERATIONS_ERROR;
req->controls = ctrls;
ctrls[n] = NULL;
ctrls[n+1] = NULL;
ctrl = talloc(ctrls, struct ldb_control);
if (!ctrl) return LDB_ERR_OPERATIONS_ERROR;
ctrl->oid = talloc_strdup(ctrl, oid);
if (!ctrl->oid) return LDB_ERR_OPERATIONS_ERROR;
ctrl->critical = critical;
ctrl->data = data;
ctrls[n] = ctrl;
return LDB_SUCCESS;
}

View File

@ -989,6 +989,18 @@ int ldb_build_rename_req(struct ldb_request **ret_req,
void *context,
ldb_request_callback_t callback);
/**
Add a ldb_control to a ldb_request
\param req the request struct where to add the control
\param oid the object identifier of the control as string
\param ciritical whether the control should be critical or not
\param data a talloc pointer to the control specific data
\return result code (LDB_SUCCESS on success, or a failure code)
*/
int ldb_request_add_control(struct ldb_request *req, const char *oid, bool critical, void *data);
/**
Search the database