Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Dec 2002 11:27:25 -0700
From:      "Jeff W. Boote" <boote@internet2.edu>
To:        freebsd-net@freebsd.org
Subject:   IPv6 udp socket bind: EADDRNOTAVAIL?
Message-ID:  <3DFA268D.A073F0F3@internet2.edu>

next in thread | raw e-mail | index | archive | help
I have a long running IPv6 daemon that uses both tcp and udp. It accepts
requests on a tcp socket, and then performs an action on a udp socket
using the same local address that the tcp request came in on. (I am
calling bind on the udp socket to allocate a port number to return to
the client over the tcp connection.)

My problem is that I get intermittent bind failures for the udp socket.
I'm trying to understand what is going on here. The udp bind is for the
same address as the local address of the tcp socket. (Although the tcp
socket was originally bound using the wildcard.)

I have tracked this down to the following lines in the kernel code:

in6_pcb.c:129
        if (!in6_ifaddr) /* XXX broken! */
                return (EADDRNOTAVAIL);

It looks like the kernel's list of v6 interfaces is empty for some
reason. Is that correct, or is there some other reason this list would
be empty?

Questions:
1. The comment says broken. Anyone know why the comment says that? (The
IPv4 version of bind says the same thing...)

2. This system is auto configuring this address... Is it possible that
I'm just having this problem because the system is reconfiguring the
address at this time? (I must admit that I have not looked at the auto
configuration stuff.)

Thanks,
jeff

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3DFA268D.A073F0F3>