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 2015/05/12 12:25:11 UTC

svn commit: r1678906 - /tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java

Author: markt
Date: Tue May 12 10:25:11 2015
New Revision: 1678906

URL: http://svn.apache.org/r1678906
Log:
Handle init for HTTP upgrade vs ALPN.
Add some debug code to confirm ALPN is working.

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

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=1678906&r1=1678905&r2=1678906&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Tue May 12 10:25:11 2015
@@ -16,33 +16,65 @@
  */
 package org.apache.coyote.http2;
 
+import java.io.IOException;
+
 import javax.servlet.http.WebConnection;
 
 import org.apache.coyote.http11.upgrade.InternalHttpUpgradeHandler;
+import org.apache.juli.logging.Log;
+import org.apache.juli.logging.LogFactory;
 import org.apache.tomcat.util.net.AbstractEndpoint.Handler.SocketState;
 import org.apache.tomcat.util.net.SocketStatus;
 import org.apache.tomcat.util.net.SocketWrapperBase;
 
+/**
+ * This represents an HTTP/2 connection from a client to Tomcat. It is designed
+ * on the basis that there will never be more than one thread performing I/O at
+ * a time.
+ */
 public class Http2UpgradeHandler implements InternalHttpUpgradeHandler {
 
+    private static final Log log = LogFactory.getLog(Http2UpgradeHandler.class);
+
+    private SocketWrapperBase<?> socketWrapper;
+    private volatile boolean initialized = false;
+
+
     @Override
-    public void init(WebConnection connection) {
-        // TODO Auto-generated method stub
+    public void init(WebConnection unused) {
+        initialized = true;
     }
 
+
     @Override
     public void setSocketWrapper(SocketWrapperBase<?> wrapper) {
-        // TODO Auto-generated method stub
+        this.socketWrapper = wrapper;
     }
 
+
     @Override
     public SocketState upgradeDispatch(SocketStatus status) {
-        // TODO Auto-generated method stub
-        return null;
+        if (!initialized) {
+            // WebConnection is not used so passing null here is fine
+            init(null);
+        }
+
+        // TODO This is for debug purposes to make sure ALPN is working.
+        log.fatal("TODO: Handle SocketStatus: " + status);
+
+        try {
+            socketWrapper.close();
+        } catch (IOException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+
+        return SocketState.CLOSED;
     }
 
+
     @Override
     public void destroy() {
-        // TODO Auto-generated method stub
+        // NO-OP
     }
 }



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