summaryrefslogtreecommitdiff
path: root/source3/utils/smbcontrol.c
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2014-04-10 22:09:04 +0200
committerJeremy Allison <jra@samba.org>2014-04-23 22:33:09 +0200
commite22433aea1fe08ecd62a8d25b525cd9e95088449 (patch)
tree134374f1fac833f403925d752f7f40ef44b90de3 /source3/utils/smbcontrol.c
parent6874e4a0f2b2bce120f2eea4563239b90c968dd7 (diff)
downloadsamba-e22433aea1fe08ecd62a8d25b525cd9e95088449.tar.gz
smbcontrol: Add dgm-cleanup command
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
Diffstat (limited to 'source3/utils/smbcontrol.c')
-rw-r--r--source3/utils/smbcontrol.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/source3/utils/smbcontrol.c b/source3/utils/smbcontrol.c
index d0e923a7b84..274de7077bc 100644
--- a/source3/utils/smbcontrol.c
+++ b/source3/utils/smbcontrol.c
@@ -968,6 +968,25 @@ static bool do_num_children(struct tevent_context *ev_ctx,
return num_replies;
}
+static bool do_dgm_cleanup(struct tevent_context *ev_ctx,
+ struct messaging_context *msg_ctx,
+ const struct server_id pid,
+ const int argc, const char **argv)
+{
+ NTSTATUS status;
+
+ if (pid.pid != 0) {
+ status = messaging_dgm_cleanup(msg_ctx, pid.pid);
+ } else {
+ status = messaging_dgm_wipe(msg_ctx);
+ }
+
+ printf("cleanup(%u) returned %s\n", (unsigned)pid.pid,
+ nt_errstr(status));
+
+ return NT_STATUS_IS_OK(status);
+}
+
/* Shutdown a server process */
static bool do_shutdown(struct tevent_context *ev_ctx,
@@ -1378,6 +1397,7 @@ static const struct {
{ "notify-cleanup", do_notify_cleanup },
{ "num-children", do_num_children,
"Print number of smbd child processes" },
+ { "dgm-cleanup", do_dgm_cleanup },
{ "noop", do_noop, "Do nothing" },
{ NULL }
};