summaryrefslogtreecommitdiff
path: root/source3/utils
diff options
context:
space:
mode:
authorVolker Lendecke <vl@samba.org>2020-04-28 12:18:40 +0200
committerRalph Boehme <slow@samba.org>2020-05-05 11:48:39 +0000
commit909c82fe0310c9dd5bd64719c87a2378e987decd (patch)
treea5bd0f20192cf2600361425f0097588d41573f60 /source3/utils
parent50a1e995cb0d8b9d88297d6b0e959c964a77fc17 (diff)
downloadsamba-909c82fe0310c9dd5bd64719c87a2378e987decd.tar.gz
net: Add g_lock dumpall
Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Ralph Boehme <slow@samba.org>
Diffstat (limited to 'source3/utils')
-rw-r--r--source3/utils/net_g_lock.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/source3/utils/net_g_lock.c b/source3/utils/net_g_lock.c
index 6092423f836..90c0f15fe78 100644
--- a/source3/utils/net_g_lock.c
+++ b/source3/utils/net_g_lock.c
@@ -160,6 +160,43 @@ done:
return ret;
}
+static int net_g_lock_dumpall_fn(TDB_DATA key, void *private_data)
+{
+ struct g_lock_ctx *g_ctx = talloc_get_type_abort(
+ private_data, struct g_lock_ctx);
+
+ dump_data_file(key.dptr, key.dsize, true, stdout);
+ g_lock_dump(g_ctx, key, net_g_lock_dump_fn, NULL);
+ printf("\n");
+
+ return 0;
+}
+
+static int net_g_lock_dumpall(
+ struct net_context *c, int argc, const char **argv)
+{
+ struct tevent_context *ev = NULL;
+ struct messaging_context *msg = NULL;
+ struct g_lock_ctx *g_ctx = NULL;
+ int ret = -1;
+
+ if (argc != 0) {
+ d_printf("Usage: net g_lock locks\n");
+ return -1;
+ }
+
+ if (!net_g_lock_init(talloc_tos(), &ev, &msg, &g_ctx)) {
+ goto done;
+ }
+
+ ret = g_lock_locks(g_ctx, net_g_lock_dumpall_fn, g_ctx);
+done:
+ TALLOC_FREE(g_ctx);
+ TALLOC_FREE(msg);
+ TALLOC_FREE(ev);
+ return ret < 0 ? -1 : ret;
+}
+
static int net_g_lock_locks_fn(TDB_DATA key, void *private_data)
{
dump_data_file(key.dptr, key.dsize, true, stdout);
@@ -214,6 +251,13 @@ int net_g_lock(struct net_context *c, int argc, const char **argv)
N_("Dump a g_lock locking table"),
N_("net g_lock dump <lock name>\n")
},
+ {
+ "dumpall",
+ net_g_lock_dumpall,
+ NET_TRANSPORT_LOCAL,
+ N_("Dump all g_lock locking tables"),
+ N_("net g_lock dumpall\n")
+ },
{NULL, NULL, 0, NULL, NULL}
};