static void free_peers(pcu_aa_tree* t) { if (pcu_aa_empty(*t)) return; free_peers(&((*t)->left)); free_peers(&((*t)->right)); pcu_msg_peer* peer; peer = (pcu_msg_peer*) *t; pcu_free_message(&(peer->message)); noto_free(peer); pcu_make_aa(t); }
static void mta_shutdown(void) { #ifdef VALGRIND child_free(); free_peers(); clean_setproctitle(); event_base_free(NULL); #endif log_info("mail transfer agent exiting"); _exit(0); }
static void control_shutdown(void) { #ifdef VALGRIND child_free(); free_peers(); clean_setproctitle(); event_base_free(NULL); #endif log_info("control process exiting"); unlink(SMTPD_SOCKET); _exit(0); }
static void free_comm(pcu_msg* m) { free_peers(&(m->peers)); pcu_free_message(&(m->received)); }