1
0
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:
Michael Adam 2011-08-17 10:33:58 +02:00
parent 6656de1346
commit bdee9458f6
3 changed files with 16 additions and 13 deletions

View File

@ -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 */

View File

@ -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;
}

View File

@ -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;