}
NTSTATUS dbwrap_watched_watch_recv(struct tevent_req *req,
- TALLOC_CTX *mem_ctx,
- struct db_record **prec,
bool *blockerdead,
struct server_id *blocker)
{
struct dbwrap_watched_watch_state *state = tevent_req_data(
req, struct dbwrap_watched_watch_state);
- struct db_watched_subrec *subrec;
NTSTATUS status;
- TDB_DATA key;
- struct db_record *rec;
- bool ok;
if (tevent_req_is_nterror(req, &status)) {
return status;
if (blocker != NULL) {
*blocker = state->blocker;
}
- if (prec == NULL) {
- return NT_STATUS_OK;
- }
-
- ok = dbwrap_record_watchers_key_parse(state->w_key, NULL, NULL, &key);
- if (!ok) {
- return NT_STATUS_INTERNAL_DB_ERROR;
- }
-
- rec = dbwrap_fetch_locked(state->db, mem_ctx, key);
- if (rec == NULL) {
- return NT_STATUS_INTERNAL_DB_ERROR;
- }
-
- talloc_set_destructor(state, NULL);
-
- subrec = talloc_get_type_abort(
- rec->private_data, struct db_watched_subrec);
-
- ok = dbwrap_watched_remove_waiter(&subrec->wrec, state->me);
- if (ok) {
- status = dbwrap_watched_save(subrec->subrec, &subrec->wrec,
- NULL, &subrec->wrec.data, 1, 0);
- if (!NT_STATUS_IS_OK(status)) {
- DBG_WARNING("dbwrap_watched_save failed: %s\n",
- nt_errstr(status));
- }
- }
-
- *prec = rec;
return NT_STATUS_OK;
}
+
struct db_record *rec,
struct server_id blocker);
NTSTATUS dbwrap_watched_watch_recv(struct tevent_req *req,
- TALLOC_CTX *mem_ctx,
- struct db_record **prec,
bool *blockerdead,
struct server_id *blocker);
struct g_lock_lock_fn_state fn_state;
NTSTATUS status;
- status = dbwrap_watched_watch_recv(subreq, NULL, NULL, NULL, NULL);
+ status = dbwrap_watched_watch_recv(subreq, NULL, NULL);
DBG_DEBUG("watch_recv returned %s\n", nt_errstr(status));
TALLOC_FREE(subreq);
NTSTATUS status;
bool ret;
- status = dbwrap_watched_watch_recv(req, talloc_tos(), NULL, NULL,
- NULL);
+ status = dbwrap_watched_watch_recv(req, NULL, NULL);
TALLOC_FREE(req);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(5, ("dbwrap_watched_watch_recv returned %s\n",
int ret_size = 0;
bool ok;
- status = dbwrap_watched_watch_recv(subreq, state->req, NULL, NULL,
- NULL);
+ status = dbwrap_watched_watch_recv(subreq, NULL, NULL);
TALLOC_FREE(subreq);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(5, ("dbwrap_record_watch_recv returned %s\n",
uint32_t global_id;
NTSTATUS status;
- status = dbwrap_watched_watch_recv(subreq, state, NULL, NULL, NULL);
+ status = dbwrap_watched_watch_recv(subreq, NULL, NULL);
TALLOC_FREE(subreq);
if (tevent_req_nterror(req, status)) {
return;
goto fail;
}
- status = dbwrap_watched_watch_recv(req, talloc_tos(), &rec, NULL,
- NULL);
+ status = dbwrap_watched_watch_recv(req, NULL, NULL);
if (!NT_STATUS_IS_OK(status)) {
fprintf(stderr, "dbwrap_record_watch_recv failed: %s\n",
nt_errstr(status));