tap: Eliminate goto from tap_handler()

The goto here really doesn't improve clarity or brevity at all.  Use a
clearer construct.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Signed-off-by: Stefano Brivio <sbrivio@redhat.com>
This commit is contained in:
David Gibson 2023-02-16 16:43:09 +11:00 committed by Stefano Brivio
parent b62ed9ca0e
commit 42bfd212b1

19
tap.c
View file

@ -1229,18 +1229,13 @@ void tap_handler(struct ctx *c, int fd, uint32_t events,
} }
if ((c->mode == MODE_PASST && tap_handler_passt(c, now)) || if ((c->mode == MODE_PASST && tap_handler_passt(c, now)) ||
(c->mode == MODE_PASTA && tap_handler_pasta(c, now))) (c->mode == MODE_PASTA && tap_handler_pasta(c, now)) ||
goto reinit; (events & (EPOLLRDHUP | EPOLLHUP | EPOLLERR))) {
if (c->one_off) {
info("Client closed connection, exiting");
exit(EXIT_SUCCESS);
}
if (events & (EPOLLRDHUP | EPOLLHUP | EPOLLERR)) tap_sock_init(c);
goto reinit;
return;
reinit:
if (c->one_off) {
info("Client closed connection, exiting");
exit(EXIT_SUCCESS);
} }
tap_sock_init(c);
} }