aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVadim Yanitskiy <axilirator@gmail.com>2019-08-23 18:03:14 +0200
committerVadim Yanitskiy <axilirator@gmail.com>2019-08-27 11:06:00 +0200
commit9e5ef54594250bdd58a15cf03307ee892baa1ab1 (patch)
treef7c7eb251a0d9b9e59aa9b6a8e7fc93c9413b23c
parentc7849c2dfe680d5157e847d3e9f6ebeaf41d50dc (diff)
osmobts_sock.cpp: pcu_sock_read(): further simplify the code
-rw-r--r--src/osmobts_sock.cpp20
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)