diff options
Diffstat (limited to 'src/client.c')
-rw-r--r-- | src/client.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/client.c b/src/client.c index 56d85734..3dd37668 100644 --- a/src/client.c +++ b/src/client.c @@ -14,7 +14,7 @@ struct client *client_new(struct core *core, const char *protocol_name, char *na c->protocol_name = protocol_name; c->name = name ? strdup(name) : NULL; c->kill = NULL; - c->userdata = NULL; + c->kill_userdata = NULL; c->core = core; r = idxset_put(core->clients, c, &c->index); @@ -30,3 +30,15 @@ void client_free(struct client *c) { free(c->name); free(c); } + +void client_set_kill_callback(struct client *c, void (*kill)(struct client *c, void *userdata), void *userdata) { + assert(c && kill); + c->kill = kill; + c->kill_userdata = userdata; +} + +void client_kill(struct client *c) { + assert(c); + c->kill(c, c->kill_userdata); +} + |