s3:lib/conn_tdb: implement connections_forall_read() based on smbXsrv_*_global_traverse()
[obnox/samba/samba-obnox.git] / source3 / lib / conn_tdb.h
1 /*
2    Unix SMB/CIFS implementation.
3    Low-level connections.tdb access functions
4    Copyright (C) Volker Lendecke 2007
5
6    This program is free software; you can redistribute it and/or modify
7    it under the terms of the GNU General Public License as published by
8    the Free Software Foundation; either version 3 of the License, or
9    (at your option) any later version.
10
11    This program is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with this program.  If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 /* key and data in the connections database - used in smbstatus and smbd */
21 struct connections_key {
22         struct server_id pid;
23         int cnum;
24         fstring name;
25 };
26
27 struct connections_data {
28         struct server_id pid;
29         int cnum;
30         uid_t uid;
31         gid_t gid;
32         char servicename[FSTRING_LEN];
33         char addr[FSTRING_LEN];
34         char machine[FSTRING_LEN];
35         time_t start;
36 };
37
38 /* The following definitions come from lib/conn_tdb.c  */
39
40 struct db_record *connections_fetch_entry(TALLOC_CTX *mem_ctx,
41                                           connection_struct *conn,
42                                           const char *name);
43 struct db_record *connections_fetch_entry_ext(TALLOC_CTX *mem_ctx,
44                                               struct server_id id,
45                                               int cnum,
46                                               const char *name);
47 int connections_forall_read(int (*fn)(const struct connections_key *key,
48                                       const struct connections_data *data,
49                                       void *private_data),
50                             void *private_data);
51 bool connections_init(bool rw);