summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorAndrew Tridgell <tridge@samba.org>1999-12-21 04:54:30 +0000
committerAndrew Tridgell <tridge@samba.org>1999-12-21 04:54:30 +0000
commit69d24d869bf97978b31a51fe8e8d08cac4874d67 (patch)
tree30ec2bcdc8491098dd9b3f0c4e3432092b73f23a /source3/include
parent0c4b1ea0140ed5418fcbde3077d424ffa08a2dcf (diff)
downloadsamba-69d24d869bf97978b31a51fe8e8d08cac4874d67.tar.gz
samba-69d24d869bf97978b31a51fe8e8d08cac4874d67.tar.bz2
samba-69d24d869bf97978b31a51fe8e8d08cac4874d67.zip
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)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/proto.h6
-rw-r--r--source3/include/smb.h28
2 files changed, 22 insertions, 12 deletions
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 */