From 69d24d869bf97978b31a51fe8e8d08cac4874d67 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Tue, 21 Dec 1999 04:54:30 +0000 Subject: first cut at using the tdb code for the connections structure, the SWAT status page and smbstatus. It made the code _much_ simpler, I wish we'd done a database module a long time ago! (This used to be commit 4951755413c11d4c5b9af4699a6e622056d52433) --- source3/include/proto.h | 6 ++++++ source3/include/smb.h | 28 ++++++++++++++++------------ 2 files changed, 22 insertions(+), 12 deletions(-) (limited to 'source3/include') diff --git a/source3/include/proto.h b/source3/include/proto.h index c933a93222..125ef3a27c 100644 --- a/source3/include/proto.h +++ b/source3/include/proto.h @@ -2375,7 +2375,9 @@ void conn_free(connection_struct *conn); /*The following definitions come from smbd/connection.c */ +TDB_CONTEXT *open_db(char *name); BOOL yield_connection(connection_struct *conn,char *name,int max_connections); +int delete_dead(TDB_CONTEXT *tdb, TDB_DATA kbuf, TDB_DATA dbuf); BOOL claim_connection(connection_struct *conn,char *name,int max_connections,BOOL Clear); /*The following definitions come from smbd/dfree.c */ @@ -2796,10 +2798,14 @@ int smbw_stat(const char *fname, struct stat *st); /*The following definitions come from tdb/tdb.c */ int tdb_update(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf); +TDB_DATA tdb_fetch(TDB_CONTEXT *tdb, TDB_DATA key); int tdb_exists(TDB_CONTEXT *tdb, TDB_DATA key); int tdb_traverse(TDB_CONTEXT *tdb, int (*fn)(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf)); +TDB_DATA tdb_firstkey(TDB_CONTEXT *tdb); +TDB_DATA tdb_nextkey(TDB_CONTEXT *tdb, TDB_DATA key); int tdb_delete(TDB_CONTEXT *tdb, TDB_DATA key); int tdb_store(TDB_CONTEXT *tdb, TDB_DATA key, TDB_DATA dbuf, int flag); +TDB_CONTEXT *tdb_open(char *name, int hash_size, int flags, mode_t mode); int tdb_close(TDB_CONTEXT *tdb); int tdb_writelock(TDB_CONTEXT *tdb); int tdb_writeunlock(TDB_CONTEXT *tdb); diff --git a/source3/include/smb.h b/source3/include/smb.h index d3d64a2edf..6c3d7488c3 100644 --- a/source3/include/smb.h +++ b/source3/include/smb.h @@ -839,19 +839,23 @@ struct passdb_ops { #endif }; -/* this is used for smbstatus */ +/* key and data in the connections database - used in smbstatus and smbd */ +struct connections_key { + pid_t pid; + int cnum; + fstring name; +}; -struct connect_record -{ - int magic; - pid_t pid; - int cnum; - uid_t uid; - gid_t gid; - char name[24]; - char addr[24]; - char machine[128]; - time_t start; +struct connections_data { + int magic; + pid_t pid; + int cnum; + uid_t uid; + gid_t gid; + char name[24]; + char addr[24]; + char machine[128]; + time_t start; }; /* the following are used by loadparm for option lists */ -- cgit