Fix fastopen transition after rebase

This commit is contained in:
klzgrad
2025-12-17 08:39:55 +08:00
parent 1b3356c3e0
commit bcb5bd8ac3
2 changed files with 21 additions and 21 deletions

View File

@@ -317,16 +317,6 @@ int QuicProxyClientSocket::DoLoop(int last_io_result) {
rv = DoReadReplyComplete(rv);
net_log_.EndEventWithNetErrorCode(
NetLogEventType::HTTP_TRANSACTION_TUNNEL_READ_HEADERS, rv);
if (use_fastopen_ && read_headers_pending_) {
read_headers_pending_ = false;
if (rv < 0) {
// read_callback_ will be called with this error and be reset.
// Further data after that will be ignored.
next_state_ = STATE_DISCONNECTED;
}
// Prevents calling connect_callback_.
rv = ERR_IO_PENDING;
}
break;
case STATE_PROCESS_RESPONSE_HEADERS:
DCHECK_EQ(OK, rv);
@@ -338,6 +328,16 @@ int QuicProxyClientSocket::DoLoop(int last_io_result) {
case STATE_PROCESS_RESPONSE_CODE:
DCHECK_EQ(OK, rv);
rv = DoProcessResponseCode();
if (use_fastopen_ && read_headers_pending_) {
read_headers_pending_ = false;
if (rv < 0) {
// read_callback_ will be called with this error and be reset.
// Further data after that will be ignored.
next_state_ = STATE_DISCONNECTED;
}
// Prevents calling connect_callback_.
rv = ERR_IO_PENDING;
}
break;
default:
NOTREACHED() << "bad state";

View File

@@ -362,6 +362,17 @@ int SpdyProxyClientSocket::DoLoop(int last_io_result) {
rv = DoReadReplyComplete(rv);
net_log_.EndEventWithNetErrorCode(
NetLogEventType::HTTP_TRANSACTION_TUNNEL_READ_HEADERS, rv);
break;
case STATE_PROCESS_RESPONSE_HEADERS:
DCHECK_EQ(OK, rv);
rv = DoProcessResponseHeaders();
break;
case STATE_PROCESS_RESPONSE_HEADERS_COMPLETE:
rv = DoProcessResponseHeadersComplete(rv);
break;
case STATE_PROCESS_RESPONSE_CODE:
DCHECK_EQ(OK, rv);
rv = DoProcessResponseCode();
if (use_fastopen_ && read_headers_pending_) {
read_headers_pending_ = false;
if (rv < 0) {
@@ -377,17 +388,6 @@ int SpdyProxyClientSocket::DoLoop(int last_io_result) {
}
}
break;
case STATE_PROCESS_RESPONSE_HEADERS:
DCHECK_EQ(OK, rv);
rv = DoProcessResponseHeaders();
break;
case STATE_PROCESS_RESPONSE_HEADERS_COMPLETE:
rv = DoProcessResponseHeadersComplete(rv);
break;
case STATE_PROCESS_RESPONSE_CODE:
DCHECK_EQ(OK, rv);
rv = DoProcessResponseCode();
break;
default:
NOTREACHED() << "bad state";
}