summaryrefslogtreecommitdiffstats
path: root/src/client.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/client.c')
-rw-r--r--src/client.c18
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);
+}
+