A while ago, I have raised the issue of the interruptibility of
the connect() function.
We decided that a "restartable" connect() if interrupted by a signal
is the best solution.
I must apologize that I should have looked this up more carefully.
According to this document here (IEEE Std 1003.1-2001):
"If connect() is interrupted by a signal that is caught while blocked
waiting to establish a connection, connect() shall fail and set errno to
[EINTR], but the connection request shall not be aborted, and the
connection shall be established asynchronously."
so we must return -EINTR in the kernel.
Alexey, will you finally agree that we need to change this? :-)
(Yes, that sucks ... but ...)