sendbuf(client);
sendbuf_visible(client);
trie_set(&client_map, client->key, NULL, NULL);
+ struct trie_find *f = NULL;
+ if (trie_findfirst(&f, &client->channels) == 1)
+ do {
+ struct channel *chan = f->n->value;
+ trie_set(&chan->members, client->key, NULL, NULL);
+ trie_set(&chan->members, key, client, NULL);
+ void *old;
+ trie_set(&chan->o, client->key, NULL, &old);
+ if (old)
+ trie_set(&chan->o, key, client, NULL);
+ trie_set(&chan->v, client->key, NULL, &old);
+ if (old)
+ trie_set(&chan->v, key, client, NULL);
+ } while(trie_findnext(&f) == 1);
free(client->nick);
free(client->key);
}