void client_session_bailout(ClientSession_t **session) { ClientSession_t *c = *session; if (! c) return; TRACE(TRACE_DEBUG,"[%p]", c); // brute force: if (server_conf->no_daemonize == 1) _exit(0); client_session_reset(c); c->state = CLIENTSTATE_ANY; ci_close(c->ci); c->ci = NULL; g_free(c); c = NULL; }
void imap_cleanup_deferred(gpointer data) { int rx; dm_thread_data *D = (dm_thread_data *)data; ImapSession *session = (ImapSession *)D->session; ClientBase_T *ci = session->ci; if (ci->rev) event_del(ci->rev); if (ci_wbuf_len(ci)) { ci_write_cb(ci); dm_queue_push(imap_cleanup_deferred, session, NULL); return; } rx = ci->rx; ci_close(ci); ci = NULL; dbmail_imap_session_delete(&session); if (rx == STDIN_FILENO) exit(0); }