mirror of
https://github.com/samba-team/samba.git
synced 2024-12-23 17:34:34 +03:00
s3:sessionid: use dbwrap_travers_read() in sessionid_travers_read()
This also changes the return code of sessionid_traverse_read() to NTSTATUS. It also uses traverse_read instead of traverse.
This commit is contained in:
parent
6656de1346
commit
bdee9458f6
@ -1679,10 +1679,10 @@ NTSTATUS sessionid_traverse(int (*fn)(struct db_record *rec, const char *key,
|
||||
struct sessionid *session,
|
||||
void *private_data),
|
||||
void *private_data);
|
||||
int sessionid_traverse_read(int (*fn)(const char *key,
|
||||
struct sessionid *session,
|
||||
void *private_data),
|
||||
void *private_data);
|
||||
NTSTATUS sessionid_traverse_read(int (*fn)(const char *key,
|
||||
struct sessionid *session,
|
||||
void *private_data),
|
||||
void *private_data);
|
||||
|
||||
/* The following definitions come from utils/passwd_util.c */
|
||||
|
||||
|
@ -127,19 +127,22 @@ static int sessionid_traverse_read_fn(struct db_record *rec,
|
||||
state->private_data);
|
||||
}
|
||||
|
||||
int sessionid_traverse_read(int (*fn)(const char *key,
|
||||
struct sessionid *session,
|
||||
void *private_data),
|
||||
void *private_data)
|
||||
NTSTATUS sessionid_traverse_read(int (*fn)(const char *key,
|
||||
struct sessionid *session,
|
||||
void *private_data),
|
||||
void *private_data)
|
||||
{
|
||||
struct db_context *db;
|
||||
struct sessionid_traverse_read_state state;
|
||||
NTSTATUS status;
|
||||
|
||||
db = session_db_ctx();
|
||||
if (db == NULL) {
|
||||
return -1;
|
||||
return NT_STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
state.fn = fn;
|
||||
state.private_data = private_data;
|
||||
return db->traverse(db, sessionid_traverse_read_fn, &state);
|
||||
status = dbwrap_traverse_read(db, sessionid_traverse_read_fn, &state,
|
||||
NULL);
|
||||
return status;
|
||||
}
|
||||
|
@ -263,14 +263,14 @@ static int gather_sessioninfo(const char *key, struct sessionid *session,
|
||||
int list_sessions(TALLOC_CTX *mem_ctx, struct sessionid **session_list)
|
||||
{
|
||||
struct session_list sesslist;
|
||||
int ret;
|
||||
NTSTATUS status;
|
||||
|
||||
sesslist.mem_ctx = mem_ctx;
|
||||
sesslist.count = 0;
|
||||
sesslist.sessions = NULL;
|
||||
|
||||
ret = sessionid_traverse_read(gather_sessioninfo, (void *) &sesslist);
|
||||
if (ret < 0) {
|
||||
status = sessionid_traverse_read(gather_sessioninfo, (void *) &sesslist);
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
DEBUG(3, ("Session traverse failed\n"));
|
||||
SAFE_FREE(sesslist.sessions);
|
||||
*session_list = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user