diff options
Diffstat (limited to 'src/client.c')
-rw-r--r-- | src/client.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/client.c b/src/client.c index 1b84c6bf..4c8a0491 100644 --- a/src/client.c +++ b/src/client.c @@ -4,6 +4,7 @@ #include <string.h> #include "client.h" +#include "strbuf.h" struct client *client_new(struct core *core, const char *protocol_name, char *name) { struct client *c; @@ -42,3 +43,20 @@ void client_kill(struct client *c) { c->kill(c); } +char *client_list_to_string(struct core *c) { + struct strbuf *s; + struct client *client; + uint32_t index = IDXSET_INVALID; + assert(c); + + s = strbuf_new(); + assert(s); + + strbuf_printf(s, "%u client(s).\n", idxset_ncontents(c->clients)); + + for (client = idxset_first(c->clients, &index); client; client = idxset_next(c->clients, &index)) + strbuf_printf(s, " index: %u, name: <%s>, protocol_name: <%s>\n", client->index, client->name, client->protocol_name); + + return strbuf_tostring_free(s); +} + |