From 9e5ef54594250bdd58a15cf03307ee892baa1ab1 Mon Sep 17 00:00:00 2001 From: Vadim Yanitskiy Date: Fri, 23 Aug 2019 18:03:14 +0200 Subject: osmobts_sock.cpp: pcu_sock_read(): further simplify the code Change-Id: Ie7c0ca8baf0ae5beadda60bda0bc76a44664d439 --- src/osmobts_sock.cpp | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/src/osmobts_sock.cpp b/src/osmobts_sock.cpp index a3e9d635..4321696e 100644 --- a/src/osmobts_sock.cpp +++ b/src/osmobts_sock.cpp @@ -143,22 +143,14 @@ static int pcu_sock_read(struct osmo_fd *bfd) int rc; rc = recv(bfd->fd, &pcu_prim, sizeof(pcu_prim), 0); - if (rc == 0) - goto close; - - if (rc < 0) { - if (errno == EAGAIN) - return 0; - goto close; + if (rc < 0 && errno == EAGAIN) + return 0; /* Try again later */ + if (rc <= 0) { + pcu_sock_close(state, 1); + return -EIO; } - rc = pcu_rx(pcu_prim.msg_type, &pcu_prim); - - return rc; - -close: - pcu_sock_close(state, 1); - return -1; + return pcu_rx(pcu_prim.msg_type, &pcu_prim); } static int pcu_sock_write(struct osmo_fd *bfd) -- cgit v1.2.3