On Thu, 29 Sep 2022 09:09:59 GMT, Michael McMahon <micha...@openjdk.org> wrote:

>> Daniel Jeliński has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   Describe oldClient
>
> src/java.base/share/classes/sun/net/www/protocol/https/HttpsClient.java line 
> 442:
> 
>> 440:             // SSLSocket.close may block up to timeout. Make sure it's 
>> short.
>> 441:             serverSocket.setSoTimeout(1);
>> 442:         } catch (Exception e) {}
> 
> Is 1ms enough for a normal SSL close to complete? Does this mean that the 
> normal close_notify exchange has to complete in that time?

full close takes one RTT, which may be much more than 1 ms. However, we are not 
aiming for a full close here; [TLS 
spec](https://datatracker.ietf.org/doc/html/rfc5246#section-7.2.1) says we 
don't have to wait for the peer's close_notify after sending ours, and we don't 
wait for it.
The wait is to make sure the OS sends our close_notify message, and does not 
send a RST packet during that time if we happen to receive data from the peer. 
1ms is definitely sufficient for HTTP 1, where the server should only send data 
when requested.

-------------

PR: https://git.openjdk.org/jdk/pull/10401

Reply via email to