apr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Colm MacCarthaigh <c...@stdlib.net>
Subject Re: cvs commit: apr/include apr_network_io.h
Date Wed, 17 Sep 2003 14:32:52 GMT

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: colm+pgp@stdlib.net
colm@stdlib.net					  http://www.stdlib.net/

Mime
View raw message