This is the mail archive of the libc-alpha@sourceware.cygnus.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: RPC IPv6 breaks binary compatibility



Hi,

On Wed, Jan 26, Ulrich Drepper wrote:

> Thorsten Kukuk <kukuk@suse.de> writes:
> 
> > Why should RPC authentication not work in a IPv6 environment ?
> > This has nothing to do with IPv4.
> 
> The structures are different.  A program expecting the IPv4 versions
> of the sockaddr element wil have problems with an IPv6 connectio.

No. Because a program using IPv4 doesn't call the IPv6 functions.

There is nothing to discuss:
Current programs, compiled against glibc 2.1.x and using RPC authentication,
are broken if they run with glibc 2.2 cvs. glibc uses the new struct,
the user program the old struct. This is binary incompatible. The change
to the struct is wrong. Only because we have new functions for IPv6, we
cannot break the old IPv4 functions.

I only see 2 solutions:
- Let the struct sockaddr_in, and if sa_family is != AF_INET use
  struct sockaddr_storage, which will be append to the struct. This 
  should work with the current and new interface.

- We use symbol versioning and add a new version for the RPC functions.
  In this case we should also fix the broken use of "long", which should
  be uint32_t. 

 Thorsten

-- 
Thorsten Kukuk       http://www.suse.de/~kukuk/       kukuk@suse.de
SuSE GmbH            Schanzaeckerstr. 10            90443 Nuernberg
Linux is like a Vorlon.  It is incredibly powerful, gives terse,
cryptic answers and has a lot of things going on in the background.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]