DescriptionHandle multiple simultanous wss: connections.
Previously, multiple simultaneous wss: connections to the same endpoint
did not work because the endpoint lock was not correctly released at the
end of the handshake.
This happened because the socket was wrapped for SSL and so the original socket
address that was passed to RememberSocket() was not the same one passed to
UnlockSocket().
Make releasing of the lock on successful handshake happen using the address
provided by GetPeerAddress() instead of the RememberSocket()
mechanism. This will not work if the socket has already been closed;
however, in that case the socket should be rapidly returned to the pool
anyway at which point UnlockSocket() will be called as normal.
Also add a browser test for multiple simultaneous wss: connections
(WebSocketBrowserTest.SSLConnectionLimit).
BUG=398737
TEST=net_unittests, browser_tests
Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=287550
Patch Set 1 #Patch Set 2 : Prevent a single socket from unlocking multiple endpoints. #Patch Set 3 : Two tiny comment fixes. #
Total comments: 4
Patch Set 4 : Use a pointer instead of a reference to scoped_ptr. #
Total comments: 1
Patch Set 5 : s/interator/iterator/ #Messages
Total messages: 10 (0 generated)
|