You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by zw...@apache.org on 2017/05/11 14:53:59 UTC

[trafficserver] branch 7.1.x updated: Fix Last-Stream-ID of GOAWAY frame

This is an automated email from the ASF dual-hosted git repository.

zwoop pushed a commit to branch 7.1.x
in repository https://gitbox.apache.org/repos/asf/trafficserver.git

The following commit(s) were added to refs/heads/7.1.x by this push:
       new  fc22468   Fix Last-Stream-ID of GOAWAY frame
fc22468 is described below

commit fc22468a37b18e48534f2585792dfff66d1d9b0d
Author: Masaori Koshiba <ma...@apache.org>
AuthorDate: Fri Apr 28 16:09:51 2017 +0900

    Fix Last-Stream-ID of GOAWAY frame
    
    (cherry picked from commit 1fb534c3518ade7755bb282ba4971b2194df0428)
---
 proxy/http2/Http2ClientSession.cc   | 2 +-
 proxy/http2/Http2ConnectionState.cc | 8 ++++----
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/proxy/http2/Http2ClientSession.cc b/proxy/http2/Http2ClientSession.cc
index fe5086e..42907c9 100644
--- a/proxy/http2/Http2ClientSession.cc
+++ b/proxy/http2/Http2ClientSession.cc
@@ -486,7 +486,7 @@ Http2ClientSession::state_process_frame_read(int event, VIO *vio, bool inside_fr
       if (err > Http2ErrorCode::HTTP2_ERROR_NO_ERROR) {
         SCOPED_MUTEX_LOCK(lock, this->connection_state.mutex, this_ethread());
         if (!this->connection_state.is_state_closed()) {
-          this->connection_state.send_goaway_frame(this->current_hdr.streamid, err);
+          this->connection_state.send_goaway_frame(this->connection_state.get_latest_stream_id_in(), err);
         }
       }
       return 0;
diff --git a/proxy/http2/Http2ConnectionState.cc b/proxy/http2/Http2ConnectionState.cc
index 3ec834b..9960386 100644
--- a/proxy/http2/Http2ConnectionState.cc
+++ b/proxy/http2/Http2ConnectionState.cc
@@ -903,7 +903,7 @@ Http2ConnectionState::main_event_handler(int event, void *edata)
           Error("HTTP/2 connection error client_ip=%s session_id=%" PRId64 " %s", client_ip, ua_session->connection_id(),
                 error.msg);
         }
-        this->send_goaway_frame(stream_id, error.code);
+        this->send_goaway_frame(this->latest_streamid_in, error.code);
         // The streams will be cleaned up by the HTTP2_SESSION_EVENT_FINI event
         // The Http2ClientSession will shutdown because connection_state.is_state_closed() will be true
 
@@ -1356,7 +1356,7 @@ Http2ConnectionState::send_headers_frame(Http2Stream *stream)
 
   // Change stream state
   if (!stream->change_state(HTTP2_FRAME_TYPE_HEADERS, flags)) {
-    this->send_goaway_frame(stream->get_id(), Http2ErrorCode::HTTP2_ERROR_PROTOCOL_ERROR);
+    this->send_goaway_frame(this->latest_streamid_in, Http2ErrorCode::HTTP2_ERROR_PROTOCOL_ERROR);
     h2_hdr.destroy();
     ats_free(buf);
     return;
@@ -1514,7 +1514,7 @@ Http2ConnectionState::send_rst_stream_frame(Http2StreamId id, Http2ErrorCode ec)
   Http2Stream *stream = find_stream(id);
   if (stream != nullptr) {
     if (!stream->change_state(HTTP2_FRAME_TYPE_RST_STREAM, 0)) {
-      this->send_goaway_frame(stream->get_id(), Http2ErrorCode::HTTP2_ERROR_PROTOCOL_ERROR);
+      this->send_goaway_frame(this->latest_streamid_in, Http2ErrorCode::HTTP2_ERROR_PROTOCOL_ERROR);
       return;
     }
   }
@@ -1547,7 +1547,7 @@ Http2ConnectionState::send_settings_frame(const Http2ConnectionSettings &new_set
 
       // Write settings to send buffer
       if (!http2_write_settings(param, iov)) {
-        send_goaway_frame(0, Http2ErrorCode::HTTP2_ERROR_INTERNAL_ERROR);
+        send_goaway_frame(this->latest_streamid_in, Http2ErrorCode::HTTP2_ERROR_INTERNAL_ERROR);
         return;
       }
       iov.iov_base = reinterpret_cast<uint8_t *>(iov.iov_base) + HTTP2_SETTINGS_PARAMETER_LEN;

-- 
To stop receiving notification emails like this one, please contact
['"commits@trafficserver.apache.org" <co...@trafficserver.apache.org>'].