static void trigger_server_wakeup(int fd) { char buf[TRIGGER_BUF_SIZE]; int len; /* * Commit suicide when the master process disconnected from us. Don't * drop the already accepted client request after "postfix reload"; that * would be rude. */ if (master_notify(var_pid, trigger_server_generation, MASTER_STAT_TAKEN) < 0) /* void */ ; if (trigger_server_in_flow_delay && mail_flow_get(1) < 0) doze(var_in_flow_delay * 1000000); if ((len = read(fd, buf, sizeof(buf))) >= 0) trigger_server_service(buf, len, trigger_server_name, trigger_server_argv); if (master_notify(var_pid, trigger_server_generation, MASTER_STAT_AVAIL) < 0) trigger_server_abort(EVENT_NULL_TYPE, EVENT_NULL_CONTEXT); if (var_idle_limit > 0) event_request_timer(trigger_server_timeout, (char *) 0, var_idle_limit); /* Avoid integer wrap-around in a persistent process. */ if (use_count < INT_MAX) use_count++; }
static void trigger_server_wakeup(int fd) { char buf[TRIGGER_BUF_SIZE]; int len; /* * Commit suicide when the master process disconnected from us. */ if (master_notify(var_pid, MASTER_STAT_TAKEN) < 0) trigger_server_abort(EVENT_NULL_TYPE, EVENT_NULL_CONTEXT); if (trigger_server_in_flow_delay && mail_flow_get(1) < 0) doze(var_in_flow_delay * 1000000); if ((len = read(fd, buf, sizeof(buf))) >= 0) trigger_server_service(buf, len, trigger_server_name, trigger_server_argv); if (master_notify(var_pid, MASTER_STAT_AVAIL) < 0) trigger_server_abort(EVENT_NULL_TYPE, EVENT_NULL_CONTEXT); if (var_idle_limit > 0) event_request_timer(trigger_server_timeout, (char *) 0, var_idle_limit); use_count++; }