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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org