| Index: net/third_party/nss/ssl/ssl3gthr.c
|
| diff --git a/net/third_party/nss/ssl/ssl3gthr.c b/net/third_party/nss/ssl/ssl3gthr.c
|
| index bdd2958414da3517c63d1d7d5b8e15c2689c1e8c..28fe1547c8b3470830255ba4b54919ac36ebc779 100644
|
| --- a/net/third_party/nss/ssl/ssl3gthr.c
|
| +++ b/net/third_party/nss/ssl/ssl3gthr.c
|
| @@ -188,6 +188,7 @@ ssl3_GatherCompleteHandshake(sslSocket *ss, int flags)
|
| {
|
| SSL3Ciphertext cText;
|
| int rv;
|
| + PRBool canFalseStart = PR_FALSE;
|
|
|
| PORT_Assert( ss->opt.noLocks || ssl_HaveRecvBufLock(ss) );
|
| do {
|
| @@ -207,7 +208,17 @@ ssl3_GatherCompleteHandshake(sslSocket *ss, int flags)
|
| if (rv < 0) {
|
| return ss->recvdCloseNotify ? 0 : rv;
|
| }
|
| - } while (ss->ssl3.hs.ws != idle_handshake && ss->gs.buf.len == 0);
|
| +
|
| + if (ss->opt.enableFalseStart) {
|
| + ssl_GetSSL3HandshakeLock(ss);
|
| + canFalseStart = (ss->ssl3.hs.ws == wait_change_cipher ||
|
| + ss->ssl3.hs.ws == wait_new_session_ticket) &&
|
| + ssl3_CanFalseStart(ss);
|
| + ssl_ReleaseSSL3HandshakeLock(ss);
|
| + }
|
| + } while (ss->ssl3.hs.ws != idle_handshake &&
|
| + !canFalseStart &&
|
| + ss->gs.buf.len == 0);
|
|
|
| ss->gs.readOffset = 0;
|
| ss->gs.writeOffset = ss->gs.buf.len;
|
|
|