From 4c188ac86175422bc44e88e037b01acaba781cb7 Mon Sep 17 00:00:00 2001 From: Matthias Schiffer Date: Wed, 16 Oct 2013 12:07:45 +0200 Subject: Fix fast roaming when local IP address has changed --- src/send.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/send.c b/src/send.c index 3de2e12..0b3f59c 100644 --- a/src/send.c +++ b/src/send.c @@ -122,6 +122,16 @@ static void send_type(fastd_context_t *ctx, const fastd_socket_t *sock, const fa ret = sendmsg(sock->fd, &msg, 0); } while (ret < 0 && errno == EINTR); + if (ret < 0 && errno == EINVAL && msg.msg_controllen) { + pr_debug2(ctx, "sendmsg failed, trying again without pktinfo"); + msg.msg_control = NULL; + msg.msg_controllen = 0; + + do { + ret = sendmsg(sock->fd, &msg, 0); + } while (ret < 0 && errno == EINTR); + } + if (ret < 0) { switch (errno) { case EAGAIN: -- cgit v1.2.3