on a semi-related note (read: I've lost the original thread), we've tracked down the full source of the sizeof(sockaddr_in6) != ai_addrlen bug on Tru64 , turns out it's a compiler alignment problem affecting some versions of Tru64 cc, and a lot of versions of gcc.
They were mis-aligning the in6_addr union, but only at certain offsets within other aligned structures (in this case sockaddr_in6). It may still be worth adding the autoconf check for sizeof == ai_addrlen to warn people about broken compilers, but the need for voodoo overlaying has gone away. On Wed, Sep 17, 2003 at 10:23:48AM -0400, Jeff Trawick wrote: > > Modified: include apr_network_io.h > > Log: > > Move the 'sa' field to the end of the structure, to ensure > > binary compatibility between a libapr built with IPv6 support > > and one built without. > > good move! > > one of my evil twins considered allocating the socket address separately > > the other one wondered about putting some reserved space in front of the > sa union in case we need more fields later, but that may be problematic > since apps can build the structure themself > > on another topic... what about binary compatibility regardless of large > file support :) > > > -- Colm MacC�rthaigh Public Key: [EMAIL PROTECTED] [EMAIL PROTECTED] http://www.stdlib.net/
