On Saturday 23 June 2007 01:26:19 C. Scott Ananian wrote: > Attached is my first draft of a patch to implement RDNSS-in-Router > Advertisements support for IPv6 ( > http://tools.ietf.org/html/draft-jeong-dnsop-ipv6-dns-discovery-12 ) > as implemented in radvd ( http://www.litech.org/radvd/ ). It > currently exports the autoconfigured DNS list as /proc/net/ipv6_dns -- > ultimately it ought to (a) implement inotify on this file, so that > glibc could use it like /etc/resolv.conf and get notifications when > the DNS list changes, and (b) export the DNS list via netlink as well. > > Comments & discussion, please! > --scott
> diff -ruHpN -X dontdiff linux-2.6.22-rc5-orig/include/net/ip6_rdnss.h > linux-2.6.22-rc5/include/net/ip6_rdnss.h > --- linux-2.6.22-rc5-orig/include/net/ip6_rdnss.h 1969-12-31 > 19:00:00.000000000 -0500 > +++ linux-2.6.22-rc5/include/net/ip6_rdnss.h 2007-06-21 > 18:16:33.000000000 -0400 @@ -0,0 +1,58 @@ > +#ifndef _NET_IP6_RDNSS_H > +#define _NET_IP6_RDNSS_H > + > +#ifdef __KERNEL__ > + > +#include <linux/in6.h> > + > +struct nd_opt_rdnss { > + __u8 type; > + __u8 length; > +#if defined(__BIG_ENDIAN_BITFIELD) > + __u8 priority:4, > + open:1, > + reserved1:3; > +#elif defined(__LITTLE_ENDIAN_BITFIELD) > + __u8 reserved1:3, > + open:1, > + priority:4; > +#else > +# error not little or big endian > +#endif That is not endianess-safe. Don't use foo:x at all for stuff where a specific endianess is needed. The compiler doesn't make any guarantee about it. Please do __u8 flags; #define FOOBAR_RESERVED 0x07 #define FOOBAR_OPEN 0x08 #define FOOBAR_PRIORITY 0xF0 .... and use them in the code. In general I try to avoid the foo:x stuff, as it has little or no gain. It just generates worse code. -- Greetings Michael. - To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html