| Index: net/third_party/nss/ssl/sslsock.c
|
| ===================================================================
|
| --- net/third_party/nss/ssl/sslsock.c (revision 227363)
|
| +++ net/third_party/nss/ssl/sslsock.c (working copy)
|
| @@ -2457,10 +2457,14 @@
|
| } else if (new_flags & PR_POLL_WRITE) {
|
| /* The caller is trying to write, but the handshake is
|
| ** blocked waiting for data to read, and the first
|
| - ** handshake has been sent. so do NOT to poll on write.
|
| + ** handshake has been sent. So do NOT to poll on write
|
| + ** unless we did false start.
|
| */
|
| - new_flags ^= PR_POLL_WRITE; /* don't select on write. */
|
| - new_flags |= PR_POLL_READ; /* do select on read. */
|
| + if (!(ss->version >= SSL_LIBRARY_VERSION_3_0 &&
|
| + ss->ssl3.hs.canFalseStart)) {
|
| + new_flags ^= PR_POLL_WRITE; /* don't select on write. */
|
| + }
|
| + new_flags |= PR_POLL_READ; /* do select on read. */
|
| }
|
| }
|
| } else if ((new_flags & PR_POLL_READ) && (SSL_DataPending(fd) > 0)) {
|
|
|