[Babel-users] Looping in EAGAIN
Dave Taht
dave.taht at gmail.com
Fri Mar 27 02:55:28 UTC 2015
I see this patch for EAGAIN on an interface going away did not make the
babel-ss-merge branch apparently. (for those new to this bug, see:
http://lists.alioth.debian.org/pipermail/babel-users/2014-October/001777.html
for more details. )
No, I haven't had time to test this patch, nor have I come up with a better
idea.
I am curious if there could be some other *more robust* means of detecting
when an interface has gone away, and/or how dnsmasq was coping with this
situation nowadays.
(I'd mentioned this problem on the endless homenet thread
http://www.ietf.org/mail-archive/web/homenet/current/msg05156.html
and, thought I'd check to see if it was mainlined!)
I certainly hate any possibility anywhere in routing code where a
possibility for infinite loop existed. are there any checkers for such
loops in the world?
On Wed, Oct 15, 2014 at 2:00 PM, Juliusz Chroboczek <
jch at pps.univ-paris-diderot.fr> wrote:
> Dave,
>
> I'm not going to have time to test this for a while. In the meantime,
> here's a proposed patch, please let me know if you find the time to test
> it.
>have
> -- Juliusz
>
> diff --git a/net.c b/net.c
> index 6f9728f..9b0b738 100644
> --- a/net.c
> +++ b/net.c
> @@ -141,7 +141,7 @@ babel_send(int s,
> {
> struct iovec iovec[2];
> struct msghdr msg;
> - int rc;
> + int rc, count = 0;
>
> iovec[0].iov_base = (void*)buf1;
> iovec[0].iov_len = buflen1;
> @@ -156,13 +156,18 @@ babel_send(int s,
> again:
> rc = sendmsg(s, &msg, 0);
> if(rc < 0) {
> - if(errno == EINTR)
> - goto again;
> - else if(errno == EAGAIN) {
> + if(errno == EINTR) {
> + count++;
> + if(count < 1000)
> + goto again;
> + } else if(errno == EAGAIN) {
> int rc2;
> rc2 = wait_for_fd(1, s, 5);
> - if(rc2 > 0)
> - goto again;
> + if(rc2 > 0) {
> + count++;
> + if(count < 1000)
> + goto again;
> + }
> errno = EAGAIN;
> }
> }
--
Dave Täht
Let's make wifi fast, less jittery and reliable again!
https://plus.google.com/u/0/107942175615993706558/posts/TVX3o84jjmb
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.alioth.debian.org/pipermail/babel-users/attachments/20150326/109bb04b/attachment.html>
More information about the Babel-users
mailing list