Re: possible socket bug in 1.3.>=61

Linus Torvalds (torvalds@cs.helsinki.fi)
Wed, 6 Mar 1996 14:40:03 +0200 (EET)


Oops, sorry for the previous empty mail - driver error..

> A bug in socket handling appears to have been introduced with 1.3.61.
> (1.3.60 is ok.) Connect() fails if nonblocking IO is set on the socket.
> A test program is included: "foo" works on 1.3.x for all x, "foo -"
> works for x<=60 and fails with "connect: Operation now in progress"
> for x>=61 (up to the latest: 71).

It doesn't fail, it only tells you that the connect has yet to be completed,
and that you should re-try later to check that you really are connected (either
with blocking IO, or by using select() and picking up the connect when it has
succeeded). The reason it used to work before is that the TCP operations used
to be synchronous, which they aren't any more.

At least Solaris-2.4 seems to have exactly the same behaviour as newer linux
kernels, btw.

Linus