Author: markt
Date: Thu Nov 12 12:49:33 2015
New Revision: 1714031

URL: http://svn.apache.org/viewvc?rev=1714031&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=58605
Provide a value for request.getProtocol()
Ensure access log reports HTTP/1.1 upgrade and initial HTTP/2.0 request 
separately.

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

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1714031&r1=1714030&r2=1714031&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Thu Nov 12 
12:49:33 2015
@@ -1032,6 +1032,11 @@ public class Http11Processor extends Abs
                     if (upgradeProtocol.accept(request)) {
                         // TODO Figure out how to handle request bodies at this
                         // point.
+                        
response.setStatus(HttpServletResponse.SC_SWITCHING_PROTOCOLS);
+                        response.setHeader("Connection", "Upgrade");
+                        response.setHeader("Upgrade", requestedProtocol);
+                        action(ActionCode.CLOSE,  null);
+                        getAdapter().log(request, response, 0);
 
                         InternalHttpUpgradeHandler upgradeHandler =
                                 upgradeProtocol.getInternalUpgradeHandler(

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=1714031&r1=1714030&r2=1714031&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http2/Http2UpgradeHandler.java Thu Nov 
12 12:49:33 2015
@@ -95,8 +95,6 @@ public class Http2UpgradeHandler extends
     private static final byte[] GOAWAY = { 0x07, 0x00, 0x00, 0x00, 0x00, 0x00 
};
 
     private static final String HTTP2_SETTINGS_HEADER = "HTTP2-Settings";
-    private static final byte[] HTTP2_UPGRADE_ACK = ("HTTP/1.1 101 Switching 
Protocols\r\n" +
-                "Connection: Upgrade\r\nUpgrade: 
h2c\r\n\r\n").getBytes(StandardCharsets.ISO_8859_1);
 
     private static final HeaderSink HEADER_SINK = new HeaderSink();
 
@@ -192,10 +190,6 @@ public class Http2UpgradeHandler extends
             // The initial HTTP/1.1 request is available as Stream 1.
 
             try {
-                // Acknowledge the upgrade request
-                socketWrapper.write(true, HTTP2_UPGRADE_ACK, 0, 
HTTP2_UPGRADE_ACK.length);
-                socketWrapper.flush(true);
-
                 // Process the initial settings frame
                 stream = getStream(1, true);
                 String base64Settings = 
stream.getCoyoteRequest().getHeader(HTTP2_SETTINGS_HEADER);
@@ -209,7 +203,7 @@ public class Http2UpgradeHandler extends
                     long value = ByteUtil.getFourBytes(settings, (i * 6) + 2);
                     remoteSettings.set(Setting.valueOf(id), value);
                 }
-            } catch (Http2Exception | IOException ioe) {
+            } catch (Http2Exception e) {
                 throw new ProtocolException(
                         sm.getString("upgradeHandler.upgrade.fail", 
connectionId));
             }



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

Reply via email to