Code Review: 6223635 Code hangs at connect call even when Timeout is specified when using a socks proxy (original) (raw)

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; SOTIMEOUT no longer impacts on the timeout when using a socks proxy. Do you mean there that SOTIMEOUT 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.

-Chris.

Thanks Michael



More information about the net-dev mailing list