+ l = xmalloc(sizeof(*l));
+ l->client = cl;
+ l->next = se->clients;
+ se->clients = l;
+}
+
+static void session_remove_clients(struct session *se)
+{
+ struct client_list *l;
+
+ session_enter(se);
+ l = se->clients;
+ se->clients = 0;
+ session_leave(se);
+
+ while (l)
+ {
+ struct client_list *l_next = l->next;
+ client_lock(l->client);
+ client_set_session(l->client, 0);
+ client_set_database(l->client, 0);
+ client_unlock(l->client);
+ client_destroy(l->client);
+ xfree(l);
+ l = l_next;
+ }