From 42bfd212b1f3bb52c7781bea10022e1c1d9db5fc Mon Sep 17 00:00:00 2001 From: David Gibson Date: Thu, 16 Feb 2023 16:43:09 +1100 Subject: 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 Signed-off-by: Stefano Brivio --- tap.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/tap.c b/tap.c index 4857599..88eed88 100644 --- a/tap.c +++ b/tap.c @@ -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)) || - (c->mode == MODE_PASTA && tap_handler_pasta(c, now))) - goto reinit; - - if (events & (EPOLLRDHUP | EPOLLHUP | EPOLLERR)) - goto reinit; + (c->mode == MODE_PASTA && tap_handler_pasta(c, now)) || + (events & (EPOLLRDHUP | EPOLLHUP | EPOLLERR))) { + if (c->one_off) { + info("Client closed connection, exiting"); + exit(EXIT_SUCCESS); + } - return; -reinit: - if (c->one_off) { - info("Client closed connection, exiting"); - exit(EXIT_SUCCESS); + tap_sock_init(c); } - - tap_sock_init(c); } -- cgit v1.2.3