diff options
author | Volker Lendecke <vl@samba.org> | 2020-04-28 12:18:40 +0200 |
---|---|---|
committer | Ralph Boehme <slow@samba.org> | 2020-05-05 11:48:39 +0000 |
commit | 909c82fe0310c9dd5bd64719c87a2378e987decd (patch) | |
tree | a5bd0f20192cf2600361425f0097588d41573f60 /source3/utils | |
parent | 50a1e995cb0d8b9d88297d6b0e959c964a77fc17 (diff) | |
download | samba-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.c | 44 |
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} }; |