FBSD: clean up rx_socket teardown
authorBen Kaduk <kaduk@mit.edu>
Sun, 28 Nov 2010 04:25:03 +0000 (23:25 -0500)
committerDerrick Brashear <shadow@dementia.org>
Wed, 1 Dec 2010 21:12:46 +0000 (13:12 -0800)
commit622403c87a8cbcedcd1212fd32414285d103887b
tree29e01e17f9195879c81b3baa9f472f192be84740
parent341d8bf1313434acf3acded90cfcffd575adc4e5
FBSD: clean up rx_socket teardown

We had previously been waiting for the SO_ISDISCONNECTED flag
to show up in the so_state field, but the flags are not really
used for stateless protocols such as UDP, and that flag never
shows up.  Even with a full three-second wait, the rxk_Listener
sometimes still failed to fully terminate, preventing the reuse
of the rx port for a restarted afsd.
Copy from Solaris and loop until rxk_ListenerPid is zero, doing
bogus one-byte NetSends in the body of the loop.

Change-Id: I6a5ad4509549fa64c551af642ef5867602b182c0
Reviewed-on: http://gerrit.openafs.org/3391
Reviewed-by: Matt Benjamin <matt@linuxbox.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/rx/FBSD/rx_knet.c