You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2017/09/05 09:44:05 UTC

svn commit: r1807329 - in /tomcat/trunk/java/org/apache/coyote/http2: Http2Protocol.java Http2UpgradeHandler.java Stream.java

Author: markt
Date: Tue Sep  5 09:44:04 2017
New Revision: 1807329

URL: http://svn.apache.org/viewvc?rev=1807329&view=rev
Log:
Refactor: Obtain limits directly from protocol

Modified:
    tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java
    tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
    tomcat/trunk/java/org/apache/coyote/http2/Stream.java

Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java?rev=1807329&r1=1807328&r2=1807329&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2Protocol.java Tue Sep  5 09:44:04 2017
@@ -105,11 +105,6 @@ public class Http2Protocol implements Up
                 ? new Http2AsyncUpgradeHandler(this, adapter, coyoteRequest)
                 : new Http2UpgradeHandler(this, adapter, coyoteRequest);
 
-        result.setAllowedTrailerHeaders(allowedTrailerHeaders);
-        result.setMaxHeaderCount(getMaxHeaderCount());
-        result.setMaxHeaderSize(getMaxHeaderSize());
-        result.setMaxTrailerCount(getMaxTrailerCount());
-        result.setMaxTrailerSize(getMaxTrailerSize());
         result.setInitiatePingDisabled(initiatePingDisabled);
         return result;
     }
@@ -226,6 +221,11 @@ public class Http2Protocol implements Up
     }
 
 
+    boolean isTrailerHeaderAllowed(String headerName) {
+        return allowedTrailerHeaders.contains(headerName);
+    }
+
+
     public void setMaxHeaderCount(int maxHeaderCount) {
         this.maxHeaderCount = maxHeaderCount;
     }

Modified: tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java?rev=1807329&r1=1807328&r2=1807329&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Tue Sep  5 09:44:04 2017
@@ -20,7 +20,6 @@ import java.io.EOFException;
 import java.io.IOException;
 import java.nio.ByteBuffer;
 import java.nio.charset.StandardCharsets;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -138,13 +137,6 @@ class Http2UpgradeHandler extends Abstra
     private AtomicInteger streamConcurrency = null;
     private Queue<StreamRunnable> queuedRunnable = null;
 
-    // Limits
-    private Set<String> allowedTrailerHeaders = Collections.emptySet();
-    private int maxHeaderCount = Constants.DEFAULT_MAX_HEADER_COUNT;
-    private int maxHeaderSize = Constants.DEFAULT_MAX_HEADER_SIZE;
-    private int maxTrailerCount = Constants.DEFAULT_MAX_TRAILER_COUNT;
-    private int maxTrailerSize = Constants.DEFAULT_MAX_TRAILER_SIZE;
-
 
     Http2UpgradeHandler(Http2Protocol protocol, Adapter adapter, Request coyoteRequest) {
         super (STREAM_ID_ZERO);
@@ -384,6 +376,11 @@ class Http2UpgradeHandler extends Abstra
     }
 
 
+    Http2Protocol getProtocol() {
+        return protocol;
+    }
+
+
     @Override
     public void pause() {
         if (log.isDebugEnabled()) {
@@ -1120,58 +1117,8 @@ class Http2UpgradeHandler extends Abstra
     }
 
 
-    boolean isTrailerHeaderAllowed(String headerName) {
-        return allowedTrailerHeaders.contains(headerName);
-    }
-
-
     // ------------------------------------------- Configuration getters/setters
 
-    public void setAllowedTrailerHeaders(Set<String> allowedTrailerHeaders) {
-        this.allowedTrailerHeaders = allowedTrailerHeaders;
-    }
-
-
-    public void setMaxHeaderCount(int maxHeaderCount) {
-        this.maxHeaderCount = maxHeaderCount;
-    }
-
-
-    public int getMaxHeaderCount() {
-        return maxHeaderCount;
-    }
-
-
-    public void setMaxHeaderSize(int maxHeaderSize) {
-        this.maxHeaderSize = maxHeaderSize;
-    }
-
-
-    public int getMaxHeaderSize() {
-        return maxHeaderSize;
-    }
-
-
-    public void setMaxTrailerCount(int maxTrailerCount) {
-        this.maxTrailerCount = maxTrailerCount;
-    }
-
-
-    public int getMaxTrailerCount() {
-        return maxTrailerCount;
-    }
-
-
-    public void setMaxTrailerSize(int maxTrailerSize) {
-        this.maxTrailerSize = maxTrailerSize;
-    }
-
-
-    public int getMaxTrailerSize() {
-        return maxTrailerSize;
-    }
-
-
     public void setInitiatePingDisabled(boolean initiatePingDisabled) {
         pingManager.initiateDisabled = initiatePingDisabled;
     }

Modified: tomcat/trunk/java/org/apache/coyote/http2/Stream.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http2/Stream.java?rev=1807329&r1=1807328&r2=1807329&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Stream.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Stream.java Tue Sep  5 09:44:04 2017
@@ -348,7 +348,8 @@ class Stream extends AbstractStream impl
             break;
         }
         default: {
-            if (headerState == HEADER_STATE_TRAILER && !handler.isTrailerHeaderAllowed(name)) {
+            if (headerState == HEADER_STATE_TRAILER &&
+                    !handler.getProtocol().isTrailerHeaderAllowed(name)) {
                 break;
             }
             if ("expect".equals(name) && "100-continue".equals(value)) {
@@ -487,14 +488,16 @@ class Stream extends AbstractStream impl
     final void receivedStartOfHeaders(boolean headersEndStream) throws Http2Exception {
         if (headerState == HEADER_STATE_START) {
             headerState = HEADER_STATE_PSEUDO;
-            handler.getHpackDecoder().setMaxHeaderCount(handler.getMaxHeaderCount());
-            handler.getHpackDecoder().setMaxHeaderSize(handler.getMaxHeaderSize());
+            handler.getHpackDecoder().setMaxHeaderCount(handler.getProtocol().getMaxHeaderCount());
+            handler.getHpackDecoder().setMaxHeaderSize(handler.getProtocol().getMaxHeaderSize());
         } else if (headerState == HEADER_STATE_PSEUDO || headerState == HEADER_STATE_REGULAR) {
             // Trailer headers MUST include the end of stream flag
             if (headersEndStream) {
                 headerState = HEADER_STATE_TRAILER;
-                handler.getHpackDecoder().setMaxHeaderCount(handler.getMaxTrailerCount());
-                handler.getHpackDecoder().setMaxHeaderSize(handler.getMaxTrailerSize());
+                handler.getHpackDecoder().setMaxHeaderCount(
+                        handler.getProtocol().getMaxTrailerCount());
+                handler.getHpackDecoder().setMaxHeaderSize(
+                        handler.getProtocol().getMaxTrailerSize());
             } else {
                 throw new ConnectionException(sm.getString("stream.trailerHeader.noEndOfStream",
                         getConnectionId(), getIdentifier()), Http2Error.PROTOCOL_ERROR);



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org