diff options
author | Volker Lendecke <vlendec@samba.org> | 2007-05-08 13:44:36 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 12:21:55 -0500 |
commit | 4aa44f7475e03dcc596f6a13fffffda7268074a1 (patch) | |
tree | 2b0529c892a64a3c2283df64d6ea14433056d04a /source3/utils/smbcontrol.c | |
parent | dcc2fe7cb61937aa191bf8b5f353d0308a8011a3 (diff) | |
download | samba-4aa44f7475e03dcc596f6a13fffffda7268074a1.tar.gz samba-4aa44f7475e03dcc596f6a13fffffda7268074a1.tar.bz2 samba-4aa44f7475e03dcc596f6a13fffffda7268074a1.zip |
r22761: This introduces lib/conn_tdb.c with two main functions: connections_traverse
and connections_forall. This centralizes all the routines that did individual
tdb_open("connections.tdb") and direct tdb_traverse.
Volker
(This used to be commit e43e94cda1ad8876b3cb5d1129080b57fa6ec214)
Diffstat (limited to 'source3/utils/smbcontrol.c')
-rw-r--r-- | source3/utils/smbcontrol.c | 40 |
1 files changed, 6 insertions, 34 deletions
diff --git a/source3/utils/smbcontrol.c b/source3/utils/smbcontrol.c index d9eb5b78ea..ab46cbce65 100644 --- a/source3/utils/smbcontrol.c +++ b/source3/utils/smbcontrol.c @@ -51,7 +51,6 @@ static BOOL send_message(struct server_id pid, int msg_type, const void *buf, int len, BOOL duplicates) { - TDB_CONTEXT *tdb; BOOL ret; int n_sent = 0; @@ -62,21 +61,11 @@ static BOOL send_message(struct server_id pid, int msg_type, return NT_STATUS_IS_OK(message_send_pid(pid, msg_type, buf, len, duplicates)); - tdb = tdb_open_log(lock_path("connections.tdb"), 0, - TDB_DEFAULT, O_RDWR, 0); - if (!tdb) { - fprintf(stderr,"Failed to open connections database" - ": %s\n", strerror(errno)); - return False; - } - - ret = message_send_all(tdb,msg_type, buf, len, duplicates, + ret = message_send_all(msg_type, buf, len, duplicates, &n_sent); DEBUG(10,("smbcontrol/send_message: broadcast message to " "%d processes\n", n_sent)); - tdb_close(tdb); - return ret; } @@ -247,16 +236,11 @@ cleanup: ptrace(PTRACE_DETACH, pid, NULL, NULL); } -static int stack_trace_connection(TDB_CONTEXT * tdb, TDB_DATA key, - TDB_DATA data, void * priv) +static int stack_trace_connection(TDB_CONTEXT * tdb, + const struct connections_key *key, + const struct connections_data *conn, { - struct connections_data conn; - - if (data.dsize != sizeof(conn)) - return 0; - - memcpy(&conn, data.dptr, sizeof(conn)); - print_stack_trace(procid_to_pid(&conn.pid), (int *)priv); + print_stack_trace(procid_to_pid(&conn->pid), (int *)priv); return 0; } @@ -286,19 +270,7 @@ static BOOL do_daemon_stack_trace(const struct server_id pid, */ print_stack_trace(dest, &count); } else { - TDB_CONTEXT * tdb; - - tdb = tdb_open_log(lock_path("connections.tdb"), 0, - TDB_DEFAULT, O_RDONLY, 0); - if (!tdb) { - fprintf(stderr, - "Failed to open connections database: %s\n", - strerror(errno)); - return False; - } - - tdb_traverse(tdb, stack_trace_connection, &count); - tdb_close(tdb); + connections_traverse(stack_trace_connection, &count); } return True; |