s3:net_status: use dbwrap to open sessionid.tdb
authorStefan Metzmacher <metze@samba.org>
Tue, 16 Dec 2008 09:40:32 +0000 (10:40 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 16 Dec 2008 09:40:32 +0000 (10:40 +0100)
metze
(cherry picked from commit 8891b2b0215a3609fcc8c5f9aa3e2fbcf05c6290)
(cherry picked from commit 598bf8fbe38d76adca2e067c90987d9cd31e8a3e)

source/utils/net_status.c

index 4a3c5895a7ec03455b337f35f5b4ff06d13d4650..3e6d3fde4ebf2a5cf57bd862873b0aded90d10e5 100644 (file)
 #include "includes.h"
 #include "utils/net.h"
 
-static int show_session(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf,
-                       void *state)
+static int show_session(struct db_record *rec, void *private_data)
 {
-       bool *parseable = (bool *)state;
+       bool *parseable = (bool *)private_data;
        struct sessionid sessionid;
 
-       if (dbuf.dsize != sizeof(sessionid))
+       if (rec->value.dsize != sizeof(sessionid))
                return 0;
 
-       memcpy(&sessionid, dbuf.dptr, sizeof(sessionid));
+       memcpy(&sessionid, rec->value.dptr, sizeof(sessionid));
 
        if (!process_exists(sessionid.pid)) {
                return 0;
@@ -51,7 +50,7 @@ static int show_session(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf,
 
 static int net_status_sessions(int argc, const char **argv)
 {
-       TDB_CONTEXT *tdb;
+       struct db_context *db;
        bool parseable;
 
        if (argc == 0) {
@@ -69,16 +68,15 @@ static int net_status_sessions(int argc, const char **argv)
                         "------------------------\n");
        }
 
-       tdb = tdb_open_log(lock_path("sessionid.tdb"), 0,
-                          TDB_DEFAULT, O_RDONLY, 0);
-
-       if (tdb == NULL) {
+       db = db_open(NULL, lock_path("sessionid.tdb"), 0,
+                    TDB_CLEAR_IF_FIRST, O_RDONLY, 0644);
+       if (db == NULL) {
                d_fprintf(stderr, "%s not initialised\n", lock_path("sessionid.tdb"));
                return -1;
        }
 
-       tdb_traverse(tdb, show_session, &parseable);
-       tdb_close(tdb);
+       db->traverse_read(db, show_session, &parseable);
+       TALLOC_FREE(db);
 
        return 0;
 }
@@ -108,16 +106,15 @@ struct sessionids {
        struct sessionid *entries;
 };
 
-static int collect_pid(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf,
-                      void *state)
+static int collect_pid(struct db_record *rec, void *private_data)
 {
-       struct sessionids *ids = (struct sessionids *)state;
+       struct sessionids *ids = (struct sessionids *)private_data;
        struct sessionid sessionid;
 
-       if (dbuf.dsize != sizeof(sessionid))
+       if (rec->value.dsize != sizeof(sessionid))
                return 0;
 
-       memcpy(&sessionid, dbuf.dptr, sizeof(sessionid));
+       memcpy(&sessionid, rec->value.dptr, sizeof(sessionid));
 
        if (!process_exists(sessionid.pid)) 
                return 0;
@@ -171,21 +168,20 @@ static int show_share_parseable(struct db_record *rec,
 static int net_status_shares_parseable(int argc, const char **argv)
 {
        struct sessionids ids;
-       TDB_CONTEXT *tdb;
+       struct db_context *db;
 
        ids.num_entries = 0;
        ids.entries = NULL;
 
-       tdb = tdb_open_log(lock_path("sessionid.tdb"), 0,
-                          TDB_DEFAULT, O_RDONLY, 0);
-
-       if (tdb == NULL) {
+       db = db_open(NULL, lock_path("sessionid.tdb"), 0,
+                    TDB_CLEAR_IF_FIRST, O_RDONLY, 0644);
+       if (db == NULL) {
                d_fprintf(stderr, "%s not initialised\n", lock_path("sessionid.tdb"));
                return -1;
        }
 
-       tdb_traverse(tdb, collect_pid, &ids);
-       tdb_close(tdb);
+       db->traverse_read(db, collect_pid, &ids);
+       TALLOC_FREE(db);
 
        connections_forall(show_share_parseable, &ids);