Code Review: 6223635 Code hangs at connect call even when Timeout is specified when using a socks proxy
Christopher Hegarty -Sun Microsystems Ireland
Christopher.Hegarty at Sun.COM
Thu Mar 11 09:14:23 PST 2010
Michael McMahon wrote:
> Christopher Hegarty -Sun Microsystems Ireland wrote:
>> Hi All,
>> This patch fixes a problem where the socks proxy implementation does
>> not honor the timeout specified in Socket.connect(SocketAddress,
>> timeout). In fact, it uses the read timeout set with setSoTimeout
>> since the socks implementation opens a connection to the socks server
>> to perform the socks protocol. This also violates the spec since a
>> timeout of 0 means block indefinitely.
>> It is worth noting that the proposed fix changes the current behavior
>> as specified above; SO_TIMEOUT no longer impacts on the timeout when
>> using a socks proxy.
> Do you mean there that SO_TIMEOUT does not affect the connect behavior,
> but it still works
> when reading off the socket after it is connected?
Yes, this is correct. Since we need to read off the socket during the
connection process to implement the socks protocol, the SO_TIMEOUT
(before this fix) had an impact on the connection timeout. After this
change SO_TIMEOUT will only impact on SocketInputStream reads,
connection timeout can be implemented through the Socket.connect API.
More information about the net-dev