From bd48891dab45e6c47f29a1fd85ff5420bd44c404 Mon Sep 17 00:00:00 2001 From: Eric Anderson Date: Wed, 25 Sep 2019 07:10:26 -0700 Subject: [PATCH] netty: Check for TE header after checking Content-Type Checking too early leads to false-positives, like if a non-gRPC client contacts the server or a grpc-web client. --- .../java/io/grpc/netty/NettyServerHandler.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/netty/src/main/java/io/grpc/netty/NettyServerHandler.java b/netty/src/main/java/io/grpc/netty/NettyServerHandler.java index b5f95c8000..13d5fb86b2 100644 --- a/netty/src/main/java/io/grpc/netty/NettyServerHandler.java +++ b/netty/src/main/java/io/grpc/netty/NettyServerHandler.java @@ -370,13 +370,6 @@ class NettyServerHandler extends AbstractNettyHandler { private void onHeadersRead(ChannelHandlerContext ctx, int streamId, Http2Headers headers) throws Http2Exception { - if (!teWarningLogged && !TE_TRAILERS.contentEquals(headers.get(TE_HEADER))) { - logger.warning(String.format("Expected header TE: %s, but %s is received. This means " - + "some intermediate proxy may not support trailers", - TE_TRAILERS, headers.get(TE_HEADER))); - teWarningLogged = true; - } - try { // Remove the leading slash of the path and get the fully qualified method name @@ -416,6 +409,13 @@ class NettyServerHandler extends AbstractNettyHandler { return; } + if (!teWarningLogged && !TE_TRAILERS.contentEquals(headers.get(TE_HEADER))) { + logger.warning(String.format("Expected header TE: %s, but %s is received. This means " + + "some intermediate proxy may not support trailers", + TE_TRAILERS, headers.get(TE_HEADER))); + teWarningLogged = true; + } + // The Http2Stream object was put by AbstractHttp2ConnectionHandler before calling this // method. Http2Stream http2Stream = requireHttp2Stream(streamId);