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