mirror of
https://github.com/samba-team/samba.git
synced 2024-12-25 23:21:54 +03:00
s4:kludge_acl: just fake support for the SD_FLAGS control
metze
This commit is contained in:
parent
aec5a08774
commit
8aff443030
@ -321,6 +321,8 @@ static int kludge_acl_search(struct ldb_module *module, struct ldb_request *req)
|
|||||||
struct kludge_private_data *data;
|
struct kludge_private_data *data;
|
||||||
const char * const *attrs;
|
const char * const *attrs;
|
||||||
int ret, i;
|
int ret, i;
|
||||||
|
struct ldb_control *sd_control;
|
||||||
|
struct ldb_control **sd_saved_controls;
|
||||||
|
|
||||||
ac = talloc(req, struct kludge_acl_context);
|
ac = talloc(req, struct kludge_acl_context);
|
||||||
if (ac == NULL) {
|
if (ac == NULL) {
|
||||||
@ -382,6 +384,17 @@ static int kludge_acl_search(struct ldb_module *module, struct ldb_request *req)
|
|||||||
return LDB_ERR_OPERATIONS_ERROR;
|
return LDB_ERR_OPERATIONS_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* check if there's an SD_FLAGS control */
|
||||||
|
sd_control = ldb_request_get_control(down_req, LDB_CONTROL_SD_FLAGS_OID);
|
||||||
|
if (sd_control) {
|
||||||
|
/* save it locally and remove it from the list */
|
||||||
|
/* we do not need to replace them later as we
|
||||||
|
* are keeping the original req intact */
|
||||||
|
if (!save_controls(sd_control, down_req, &sd_saved_controls)) {
|
||||||
|
return LDB_ERR_OPERATIONS_ERROR;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/* perform the search */
|
/* perform the search */
|
||||||
return ldb_next_request(module, down_req);
|
return ldb_next_request(module, down_req);
|
||||||
}
|
}
|
||||||
@ -462,6 +475,13 @@ static int kludge_acl_init(struct ldb_module *module)
|
|||||||
}
|
}
|
||||||
data->password_attrs[i] = NULL;
|
data->password_attrs[i] = NULL;
|
||||||
|
|
||||||
|
ret = ldb_mod_register_control(module, LDB_CONTROL_SD_FLAGS_OID);
|
||||||
|
if (ret != LDB_SUCCESS) {
|
||||||
|
ldb_debug(module->ldb, LDB_DEBUG_ERROR,
|
||||||
|
"partition: Unable to register control with rootdse!\n");
|
||||||
|
return LDB_ERR_OPERATIONS_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
done:
|
done:
|
||||||
talloc_free(mem_ctx);
|
talloc_free(mem_ctx);
|
||||||
return ldb_next_init(module);
|
return ldb_next_init(module);
|
||||||
|
Loading…
Reference in New Issue
Block a user