summaryrefslogtreecommitdiff
path: root/lib/op-open.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/op-open.c')
-rw-r--r--lib/op-open.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/op-open.c b/lib/op-open.c
index 34874b0..7b7f8c5 100644
--- a/lib/op-open.c
+++ b/lib/op-open.c
@@ -115,6 +115,8 @@ static
*
* - >= 0 to indicate message processing should continue
* - -EBUSY to indicate message processing should stop
+ * - -ENODEV a message was received, but it was for another device,
+ * not the one this handle is listening to.
* - any other < 0 error code to indicate an error and that the
* message should be skipped.
*
@@ -243,6 +245,9 @@ ssize_t wimaxll_recv(struct wimaxll_handle *wmx)
result = nl_recvmsgs(wmx->nlh_rx, cb);
d_printf(3, wmx, "I: ctx.result %zd result %zd\n",
ctx.result, result);
+ /* if this was a message for another device, we skip it */
+ if (ctx.result == -ENODEV)
+ ctx.result = -EINPROGRESS;
} while ((ctx.result == -EINPROGRESS)
&& result > 0);
if (result < 0)