This is the mail archive of the
libc-alpha@sources.redhat.com
mailing list for the glibc project.
glibc needs an ipv6 update for Linux 2.4
- To: libc-alpha at sourceware dot cygnus dot com
- Subject: glibc needs an ipv6 update for Linux 2.4
- From: Felix von Leitner <leitner at fefe dot de>
- Date: Wed, 19 Jul 2000 19:49:40 +0200
Hi!
glibc currently defines struct sockaddr_in6 (in <netinet/in.h>) as
follows:
struct sockaddr_in6
{
__SOCKADDR_COMMON (sin6_);
uint16_t sin6_port; /* Transport layer port # */
uint32_t sin6_flowinfo; /* IPv6 flow information */
struct in6_addr sin6_addr; /* IPv6 address */
};
This was correct once, but the IPv6 guys decided to add another field called
"scope ID" (see <linux/in6.h>, the kernel includes were already fixed).
This structure should now look like this:
struct sockaddr_in6
{
__SOCKADDR_COMMON (sin6_);
uint16_t sin6_port; /* Transport layer port # */
uint32_t sin6_flowinfo; /* IPv6 flow information */
struct in6_addr sin6_addr; /* IPv6 address */
uint32_t sin6_scope_id; /* IPv6 scope id (new in RFC2553) */
};
The change should be source-code transparent to well-written programs
that memset the struct sockaddr before using it, and it is binary
compatible to old programs, because the socket routines that take
sockaddr_in6 as argument always also take the length as argument.
Felix
PS: Will you add me to the changelog now? ;-)