Subject: Re: RFC 3484 support

From: Ulrich Drepper <[email-masked]>
Date: Tue, 18 Nov 2003 00:59:58 -0800

[email-masked] wrote:

> Datagram connect() is exactly selection of the addresses, nothing more.

I've now implemented a userlevel-only version of the destination address
selection algorithm in glibc's getaddrinfo.  The cost is 4 additional
system calls per returned address plus potentially more (see below).

The code has also limitation I don't think a userlevel implementation
can overcome:

~ rules 3, 4, and 7 are not implemented.  This info is, afaik, only
  available inside the kernel (if at all)

~ the source address selection also needs the label and precedence
  information.  Therefore the kernel would have to share this
  information.

~ to read the label/preference data more syscalls are needed.  And
  there is the question when to read that info.  Once per program
  run?  What about changes to the policies and programs which run
  for a long time?

I'm OK with having this code I wrote as a backup solution.  But I still
would like to see the kernel supporting it directly.  There are programs
which do a lot name lookups and speed is important.

- -- 
➧ Ulrich Drepper ➧ Red Hat, Inc. ➧ 444 Castro St ➧ Mountain View, CA ❖