fix slow behavior on Mac OS X with link-local addresses
authorKen Raeburn <raeburn@mit.edu>
Thu, 3 Dec 2009 02:17:28 +0000 (02:17 +0000)
committerKen Raeburn <raeburn@mit.edu>
Thu, 3 Dec 2009 02:17:28 +0000 (02:17 +0000)
commiteba0ec199690e944da56f1398a9ab407f95af0d5
tree720fe68065928e84dcc89108ce5c73ceec857446
parentdf1f581ffeff2abb67ee4e6b6d4da13189b0d271
fix slow behavior on Mac OS X with link-local addresses

When using my previous patch, if a local hostname like "foobar.local"
is looked up, you may get back a link-local IPv6 address.  However,
the KDC seems to be unable to respond from that address, resulting in
a ~1s delay for each KDC exchange while waiting for the client to fail
over to another address (in my case, another IPv6 address).

Create a new object for holding whatever auxiliary information might
be needed to properly transmit the response to the client.  Currently,
that only means the interface index number under IPv6.  Fill it in on
receipt, always; copy it back to the pktinfo structure when
transmitting, ONLY if the local source address is link-local.

If an error occurs while transmitting the reply, print both the remote
destination address and the local source address.  Use getnameinfo
instead of inet_ntop.

Apply the same changes to kadmind, to keep the versions of network.c
more or less in sync.

ticket: 6591

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@23440 dc483132-0cff-0310-8789-dd5450dbe970
src/kadmin/server/network.c
src/kdc/network.c