log_info("caught signal SIGQUIT");
comm_base_exit(worker->base);
break;
+ case SIGTERM:
+ log_info("caught signal SIGTERM");
+ comm_base_exit(worker->base);
+ break;
default:
log_err("unknown signal: %d, ignored", sig);
break;
worker_sighandler, worker);
if(!worker->comsig || !comm_signal_bind(worker->comsig, SIGHUP)
|| !comm_signal_bind(worker->comsig, SIGINT)
+ || !comm_signal_bind(worker->comsig, SIGTERM)
|| !comm_signal_bind(worker->comsig, SIGQUIT)) {
log_err("could not create signal handlers");
worker_delete(worker);
ub_thread_sig_unblock(SIGHUP);
ub_thread_sig_unblock(SIGINT);
ub_thread_sig_unblock(SIGQUIT);
+ ub_thread_sig_unblock(SIGTERM);
} else { /* !do_sigs */
worker->comsig = 0;
}
listen_delete(worker->front);
outside_network_delete(worker->back);
comm_signal_delete(worker->comsig);
+ comm_point_delete(worker->cmd_com);
comm_base_delete(worker->base);
free(worker->rndstate);
free(worker);
free(list);
}
+struct comm_point* comm_point_create_local(struct comm_base* ATTR_UNUSED(base),
+ int ATTR_UNUSED(fd), size_t ATTR_UNUSED(bufsize),
+ comm_point_callback_t* ATTR_UNUSED(callback),
+ void* ATTR_UNUSED(callback_arg))
+{
+ return calloc(1, 1);
+}
+
+/* only cmd com _local gets deleted */
+void comm_point_delete(struct comm_point* c)
+{
+ free(c);
+}
/*********** End of Dummy routines ***********/