Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upstream: update Envoy to include new fixes #663

Merged
merged 9 commits into from
Feb 10, 2020
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions library/common/http/dispatcher.cc
Original file line number Diff line number Diff line change
Expand Up @@ -262,7 +262,7 @@ envoy_status_t Dispatcher::startStream(envoy_stream_t new_stream_handle,
std::make_unique<DirectStreamCallbacks>(*direct_stream, bridge_callbacks, *this);

// Only the initial setting of the api_listener_ is guarded.
direct_stream->stream_decoder_ =
direct_stream->request_decoder_ =
&TS_UNCHECKED_READ(api_listener_)->newStream(*direct_stream->callbacks_);

Thread::ReleasableLockGuard lock(streams_lock_);
Expand Down Expand Up @@ -290,7 +290,7 @@ envoy_status_t Dispatcher::sendHeaders(envoy_stream_t stream, envoy_headers head
ENVOY_LOG(debug, "[S{}] request headers for stream (end_stream={}):\n{}", stream, end_stream,
*internal_headers);
attachPreferredNetwork(*internal_headers);
direct_stream->stream_decoder_->decodeHeaders(std::move(internal_headers), end_stream);
direct_stream->request_decoder_->decodeHeaders(std::move(internal_headers), end_stream);
direct_stream->closeLocal(end_stream);
}
});
Expand All @@ -315,7 +315,7 @@ envoy_status_t Dispatcher::sendData(envoy_stream_t stream, envoy_data data, bool

ENVOY_LOG(debug, "[S{}] request data for stream (length={} end_stream={})\n", stream,
data.length, end_stream);
direct_stream->stream_decoder_->decodeData(*buf, end_stream);
direct_stream->request_decoder_->decodeData(*buf, end_stream);
direct_stream->closeLocal(end_stream);
}
});
Expand All @@ -339,7 +339,7 @@ envoy_status_t Dispatcher::sendTrailers(envoy_stream_t stream, envoy_headers tra
if (direct_stream) {
HeaderMapPtr internal_trailers = Utility::toInternalHeaders(trailers);
ENVOY_LOG(debug, "[S{}] request trailers for stream:\n{}", stream, *internal_trailers);
direct_stream->stream_decoder_->decodeTrailers(std::move(internal_trailers));
direct_stream->request_decoder_->decodeTrailers(std::move(internal_trailers));
direct_stream->closeLocal(true);
}
});
Expand Down
8 changes: 5 additions & 3 deletions library/common/http/dispatcher.h
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,9 @@ class Dispatcher : public Logger::Loggable<Logger::Id::http> {
* DirectStreamCallbacks can continue to receive events until the remote to local stream is
* closed, or resetStream is called.
*/
class DirectStreamCallbacks : public StreamEncoder, public Logger::Loggable<Logger::Id::http> {
class DirectStreamCallbacks : public RequestEncoder,
public ResponseEncoder,
rebello95 marked this conversation as resolved.
Show resolved Hide resolved
public Logger::Loggable<Logger::Id::http> {
public:
DirectStreamCallbacks(DirectStream& direct_stream, envoy_http_callbacks bridge_callbacks,
Dispatcher& http_dispatcher);
Expand All @@ -108,7 +110,7 @@ class Dispatcher : public Logger::Loggable<Logger::Id::http> {
void onCancel();
void closeRemote(bool end_stream);

// StreamEncoder
// RequestEncoder
void encodeHeaders(const HeaderMap& headers, bool end_stream) override;
void encodeData(Buffer::Instance& data, bool end_stream) override;
void encodeTrailers(const HeaderMap& trailers) override;
Expand Down Expand Up @@ -181,7 +183,7 @@ class Dispatcher : public Logger::Loggable<Logger::Id::http> {
bool local_closed_{};

// Used to issue outgoing HTTP stream operations.
StreamDecoder* stream_decoder_;
RequestDecoder* request_decoder_;
// Used to receive incoming HTTP stream operations.
DirectStreamCallbacksPtr callbacks_;
Dispatcher& parent_;
Expand Down
36 changes: 18 additions & 18 deletions test/common/http/dispatcher_test.cc
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class DispatcherTest : public testing::Test {
} callbacks_called;

MockApiListener api_listener_;
MockStreamDecoder request_decoder_;
MockRequestDecoder request_decoder_;
StreamEncoder* response_encoder_{};
NiceMock<Event::MockDispatcher> event_dispatcher_;
envoy_http_callbacks bridge_callbacks_;
Expand Down Expand Up @@ -77,7 +77,7 @@ TEST_F(DispatcherTest, PreferredNetwork) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -190,7 +190,7 @@ TEST_F(DispatcherTest, BasicStreamHeadersOnly) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -261,7 +261,7 @@ TEST_F(DispatcherTest, BasicStream) {
// Return the request decoder to make sure calls are dispatched to the decoder via the
// dispatcher API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -347,7 +347,7 @@ TEST_F(DispatcherTest, MultipleDataStream) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -432,7 +432,7 @@ TEST_F(DispatcherTest, MultipleStreams) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand All @@ -448,7 +448,7 @@ TEST_F(DispatcherTest, MultipleStreams) {

// Start stream2.
// Setup bridge_callbacks to handle the response headers.
NiceMock<MockStreamDecoder> request_decoder2;
NiceMock<MockRequestDecoder> request_decoder2;
StreamEncoder* response_encoder2{};
envoy_http_callbacks bridge_callbacks2;
callbacks_called cc2 = {0, 0, 0, 0, 0};
Expand Down Expand Up @@ -480,7 +480,7 @@ TEST_F(DispatcherTest, MultipleStreams) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder2 = &encoder;
return request_decoder2;
}));
Expand Down Expand Up @@ -543,7 +543,7 @@ TEST_F(DispatcherTest, ResetStreamLocal) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -606,7 +606,7 @@ TEST_F(DispatcherTest, RemoteResetAfterStreamStart) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -668,7 +668,7 @@ TEST_F(DispatcherTest, StreamResetAfterOnComplete) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -740,7 +740,7 @@ TEST_F(DispatcherTest, ResetStreamLocalHeadersRemoteRaceLocalWins) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -829,7 +829,7 @@ TEST_F(DispatcherTest, ResetStreamLocalHeadersRemoteRemoteWinsDeletesStream) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -917,7 +917,7 @@ TEST_F(DispatcherTest, ResetStreamLocalHeadersRemoteRemoteWins) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -1007,7 +1007,7 @@ TEST_F(DispatcherTest, ResetStreamLocalResetRemoteRaceLocalWins) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -1093,7 +1093,7 @@ TEST_F(DispatcherTest, ResetStreamLocalResetRemoteRemoteWinsDeletesStream) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -1178,7 +1178,7 @@ TEST_F(DispatcherTest, ResetStreamLocalResetRemoteRemoteWins) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down Expand Up @@ -1249,7 +1249,7 @@ TEST_F(DispatcherTest, ResetWhenRemoteClosesBeforeLocal) {
// Return the request decoder to make sure calls are dispatched to the decoder via the dispatcher
// API.
EXPECT_CALL(api_listener_, newStream(_, _))
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> StreamDecoder& {
.WillOnce(Invoke([&](StreamEncoder& encoder, bool) -> RequestDecoder& {
response_encoder_ = &encoder;
return request_decoder_;
}));
Expand Down