struct tevent_context *ev;
struct smbXsrv_connection *connection;
struct dom_sid *current_sid;
+ uint64_t previous_session_id;
uint64_t current_session_id;
struct db_record *db_rec;
};
}
state->ev = ev;
state->connection = conn;
+ state->previous_session_id = previous_session_id;
state->current_session_id = current_session_id;
if (global_zeros != 0) {
struct smb2srv_session_close_previous_state *state =
tevent_req_data(req,
struct smb2srv_session_close_previous_state);
+ uint32_t global_id;
NTSTATUS status;
- status = dbwrap_watched_watch_recv(subreq, state, &state->db_rec, NULL,
- NULL);
+ status = dbwrap_watched_watch_recv(subreq, state, NULL, NULL, NULL);
TALLOC_FREE(subreq);
if (tevent_req_nterror(req, status)) {
return;
}
+ global_id = state->previous_session_id & UINT32_MAX;
+
+ state->db_rec = smbXsrv_session_global_fetch_locked(
+ state->connection->client->session_table->global.db_ctx,
+ global_id, state /* TALLOC_CTX */);
+
smb2srv_session_close_previous_check(req);
}