s3:sessionid: use dbwrap_travers() in sessionid_traverse()
authorMichael Adam <obnox@samba.org>
Wed, 17 Aug 2011 08:20:46 +0000 (10:20 +0200)
committerMichael Adam <obnox@samba.org>
Tue, 11 Oct 2011 12:17:56 +0000 (14:17 +0200)
This also changes sessionid_traverse to NTSTATUS return type.

source3/include/proto.h
source3/lib/sessionid_tdb.c

index ffc90ffd2c0e62a3b3bf2d3ffb46abe12b181a3b..7aa1b01baf01c2038dd73422e3f7f017ed3c55c8 100644 (file)
@@ -1675,10 +1675,10 @@ void server_messaging_context_free(void);
 struct sessionid;
 bool sessionid_init(void);
 struct db_record *sessionid_fetch_record(TALLOC_CTX *mem_ctx, const char *key);
-int sessionid_traverse(int (*fn)(struct db_record *rec, const char *key,
-                                struct sessionid *session,
-                                void *private_data),
-                      void *private_data);
+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),
index ebc1b8af79632bf625e32ef2a115bb67e32f4ebb..231ff55489924d4f98d38cfffbf039434913337d 100644 (file)
@@ -83,21 +83,23 @@ static int sessionid_traverse_fn(struct db_record *rec, void *private_data)
                         state->private_data);
 }
 
-int sessionid_traverse(int (*fn)(struct db_record *rec, const char *key,
-                                struct sessionid *session,
-                                void *private_data),
-                      void *private_data)
+NTSTATUS sessionid_traverse(int (*fn)(struct db_record *rec, const char *key,
+                                     struct sessionid *session,
+                                     void *private_data),
+                           void *private_data)
 {
        struct db_context *db;
        struct sessionid_traverse_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_fn, &state);
+       status = dbwrap_traverse(db, sessionid_traverse_fn, &state, NULL);
+       return status;
 }
 
 struct sessionid_traverse_read_state {