diff options
author | Vadim Yanitskiy <axilirator@gmail.com> | 2019-08-23 18:03:14 +0200 |
---|---|---|
committer | Vadim Yanitskiy <axilirator@gmail.com> | 2019-08-27 11:06:00 +0200 |
commit | 9e5ef54594250bdd58a15cf03307ee892baa1ab1 (patch) | |
tree | f7c7eb251a0d9b9e59aa9b6a8e7fc93c9413b23c | |
parent | c7849c2dfe680d5157e847d3e9f6ebeaf41d50dc (diff) |
osmobts_sock.cpp: pcu_sock_read(): further simplify the code
Change-Id: Ie7c0ca8baf0ae5beadda60bda0bc76a44664d439
-rw-r--r-- | src/osmobts_sock.cpp | 20 |
1 files 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) |