avoid unlinking actively listening sockets
While we've always unlinked dead sockets from nuked/leftover
processes, blindly unlinking them can cause unnecessary failures
when an active process is already listening on them. We now
make a simple connect(2) check to ensure the socket is not in
use before unlinking it.
Thanks to Jordan Ritter for the detailed bug report leading to
this fix.
ref: http://mid.gmane.org/
8D95A44B-A098-43BE-B532-
7D74BD957F31@darkridge.com
(cherry picked from commit
1a2363b17b1d06be6b35d347ebcaed6a0c940200)