aboutsummaryrefslogtreecommitdiffstats
path: root/openbsc/src/input/ipaccess.c
diff options
context:
space:
mode:
authorHarald Welte <laforge@netfilter.org>2009-12-24 13:35:18 +0100
committerHarald Welte <laforge@netfilter.org>2009-12-24 13:35:18 +0100
commitfb33957405ea342ef81d307e1da983cedc5f1960 (patch)
treed1f301b705d5cb4949308539f0356641309c9a7b /openbsc/src/input/ipaccess.c
parente98d4278d0cf87c8e2345900d612bbbb607635a0 (diff)
properly check for EAGAIN in recv() calls
If recv() has no more messages on a non-blocking socket, errno will be EAGAIN, not the return value!
Diffstat (limited to 'openbsc/src/input/ipaccess.c')
-rw-r--r--openbsc/src/input/ipaccess.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/openbsc/src/input/ipaccess.c b/openbsc/src/input/ipaccess.c
index 4396269db..c72176657 100644
--- a/openbsc/src/input/ipaccess.c
+++ b/openbsc/src/input/ipaccess.c
@@ -270,8 +270,8 @@ struct msgb *ipaccess_read_msg(struct bsc_fd *bfd, int *error)
hh = (struct ipaccess_head *) msg->data;
ret = recv(bfd->fd, msg->data, 3, 0);
if (ret < 0) {
- if (ret != -EAGAIN)
- LOGP(DINP, LOGL_ERROR, "recv error %s\n", strerror(errno));
+ if (errno != EAGAIN)
+ LOGP(DINP, LOGL_ERROR, "recv error %d %s\n", ret, strerror(errno));
msgb_free(msg);
*error = ret;
return NULL;