Le samedi 7 octobre 2006 19:39, Noah Meyerhans a écrit :
> On Sat, Oct 07, 2006 at 05:03:37PM +0300, R??mi Denis-Courmont wrote:
> > With the binary currently in unstable:
> > % ping6 ::1
> > PING ::1(::1) 56 data bytes
> > 64 bytes from ::1: icmp_seq=1 ttl=64 time=0.058 ms
> >
> > --- ::1 ping statistics ---
> > 1 packets transmitted, 1 received, 0% packet loss, time 0ms
> > rtt min/avg/max/mdev = 0.058/0.058/0.058/0.000 ms
> >
> > With the binary obtained from unmodified Debian source:
> > % ping6 ::1
> > can't receive hop limit: Protocol not available
> >
> > I've not checked yet, but my best guess is a mixup between the
> > RFC2292- and RFC3542-style socket options.

Indeed, putting IPV6_RECVHOPLIMIT instead of IPV6_HOPLIMIT at 
ping6.c:485 seems to solve the problem.

> So, just out of curiosity, if the source doesn't build a working
> binary, where do you suppose the working binaries in unstable
> actually came from?

I presume the problem is with some newer linux-kernel-headers since the 
build. With RFC2292, IPV6_HOPLIMIT(8) was used both as a socket option 
and for ancilliary data (CMSG_* thingy). With RFC3542, the socket 
option becomes IPV6_RECVHOPLIMIT(51) while the ancilliary data still 
users IPV6_HOPLIMIT(52). I don't know when the kernel switched; I 
thinkg glibc switches with 2.4 (which is post Etch), but iputils has 
the peculiarity of using the linux kernel headers instead of the glibc 
ones.

Regards,

-- 
Rémi Denis-Courmont
http://www.remlab.net/

Attachment: pgpPP35Y8O51j.pgp
Description: PGP signature

Reply via email to