Remove the last bits of the legacy main_loop().
This commit is contained in:
parent
ddc6a81a85
commit
3909b8e51b
2 changed files with 11 additions and 43 deletions
53
src/net.c
53
src/net.c
|
@ -202,7 +202,7 @@ void terminate_connection(connection_t *c, bool report)
|
||||||
end does not reply in time, we consider them dead
|
end does not reply in time, we consider them dead
|
||||||
and close the connection.
|
and close the connection.
|
||||||
*/
|
*/
|
||||||
static void check_dead_connections(void)
|
static void timeout_handler(int fd, short events, void *event)
|
||||||
{
|
{
|
||||||
avl_node_t *node, *next;
|
avl_node_t *node, *next;
|
||||||
connection_t *c;
|
connection_t *c;
|
||||||
|
@ -243,6 +243,8 @@ static void check_dead_connections(void)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
event_add(event, &(struct timeval){pingtimeout, 0});
|
||||||
}
|
}
|
||||||
|
|
||||||
void handle_meta_connection_data(int fd, short events, void *data)
|
void handle_meta_connection_data(int fd, short events, void *data)
|
||||||
|
@ -396,8 +398,7 @@ int main_loop(void)
|
||||||
{
|
{
|
||||||
struct timeval tv;
|
struct timeval tv;
|
||||||
int r;
|
int r;
|
||||||
time_t last_ping_check;
|
struct event timeout_event;
|
||||||
struct event timeout;
|
|
||||||
struct event sighup_event;
|
struct event sighup_event;
|
||||||
struct event sigint_event;
|
struct event sigint_event;
|
||||||
struct event sigterm_event;
|
struct event sigterm_event;
|
||||||
|
@ -409,6 +410,8 @@ int main_loop(void)
|
||||||
|
|
||||||
cp();
|
cp();
|
||||||
|
|
||||||
|
timeout_set(&timeout_event, timeout_handler, &timeout_event);
|
||||||
|
event_add(&timeout_event, &(struct timeval){pingtimeout, 0});
|
||||||
signal_set(&sighup_event, SIGHUP, sighup_handler, NULL);
|
signal_set(&sighup_event, SIGHUP, sighup_handler, NULL);
|
||||||
signal_add(&sighup_event, NULL);
|
signal_add(&sighup_event, NULL);
|
||||||
signal_set(&sigint_event, SIGINT, sigint_handler, NULL);
|
signal_set(&sigint_event, SIGINT, sigint_handler, NULL);
|
||||||
|
@ -426,46 +429,9 @@ int main_loop(void)
|
||||||
signal_set(&sigalrm_event, SIGALRM, sigalrm_handler, NULL);
|
signal_set(&sigalrm_event, SIGALRM, sigalrm_handler, NULL);
|
||||||
signal_add(&sigalrm_event, NULL);
|
signal_add(&sigalrm_event, NULL);
|
||||||
|
|
||||||
last_ping_check = time(NULL);
|
if(event_loop(0) < 0) {
|
||||||
|
logger(LOG_ERR, _("Error while waiting for input: %s"), strerror(errno));
|
||||||
srand(time(NULL));
|
return 1;
|
||||||
|
|
||||||
running = true;
|
|
||||||
|
|
||||||
while(running) {
|
|
||||||
tv.tv_sec = 1;
|
|
||||||
tv.tv_usec = 0;
|
|
||||||
|
|
||||||
/* XXX: libevent transition: old timeout code in this loop */
|
|
||||||
timeout_set(&timeout, dummy, NULL);
|
|
||||||
timeout_add(&timeout, &tv);
|
|
||||||
|
|
||||||
r = build_fdset();
|
|
||||||
if(r < 0) {
|
|
||||||
logger(LOG_ERR, _("Error building fdset: %s"), strerror(errno));
|
|
||||||
cp_trace();
|
|
||||||
dump_connections();
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
r = event_loop(EVLOOP_ONCE);
|
|
||||||
if(r < 0) {
|
|
||||||
logger(LOG_ERR, _("Error while waiting for input: %s"),
|
|
||||||
strerror(errno));
|
|
||||||
cp_trace();
|
|
||||||
dump_connections();
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* XXX: more libevent transition */
|
|
||||||
timeout_del(&timeout);
|
|
||||||
|
|
||||||
/* Let's check if everybody is still alive */
|
|
||||||
|
|
||||||
if(last_ping_check + pingtimeout < time(NULL)) {
|
|
||||||
check_dead_connections();
|
|
||||||
last_ping_check = time(NULL);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
signal_del(&sighup_event);
|
signal_del(&sighup_event);
|
||||||
|
@ -476,6 +442,7 @@ int main_loop(void)
|
||||||
signal_del(&sigusr2_event);
|
signal_del(&sigusr2_event);
|
||||||
signal_del(&sigwinch_event);
|
signal_del(&sigwinch_event);
|
||||||
signal_del(&sigalrm_event);
|
signal_del(&sigalrm_event);
|
||||||
|
event_del(&timeout_event);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
@ -447,6 +447,7 @@ int main(int argc, char **argv)
|
||||||
|
|
||||||
/* Slllluuuuuuurrrrp! */
|
/* Slllluuuuuuurrrrp! */
|
||||||
|
|
||||||
|
srand(time(NULL));
|
||||||
RAND_load_file("/dev/urandom", 1024);
|
RAND_load_file("/dev/urandom", 1024);
|
||||||
|
|
||||||
ENGINE_load_builtin_engines();
|
ENGINE_load_builtin_engines();
|
||||||
|
|
Loading…
Reference in a new issue