[1712] in Kerberos_V5_Development
Solaris UDP connect() lossage
daemon@ATHENA.MIT.EDU (Tom Yu)
Fri Sep 6 05:57:03 1996
Date: Fri, 6 Sep 1996 05:56:53 -0400
To: krbcore@MIT.EDU
From: Tom Yu <tlyu@MIT.EDU>
Under Solaris, if you connect() a UDP socket, then you don't get the
BSD behaviour of having send() and recv() return ECONNREFUSED when
called after a send() ends up sending to a nonlistening port. Do we
want to work around this or not? I first noticed it in login.krb5
when it's trying to convert the tickets to krb4 tickets and was
hanging because krb524d wasn't runnign on fmult.mit.edu. Attempting
to run krb524init gives the same problem. OSF/1 and Ultrix get this
right. I can't seem to find anything that says that connect() should
actually have the BSD behaviour under Solaris, but I think that it's a
bug that it doesn't. One possible workaround is to open a raw socket
and listen for the appropriate ICMP messages. Then again, this
requires root access. Sigh.
---Tom