You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2016/05/03 18:23:04 UTC
svn commit: r1742139 -
/tomcat/trunk/java/org/apache/coyote/http11/Http11InputBuffer.java
Author: remm
Date: Tue May 3 16:23:04 2016
New Revision: 1742139
URL: http://svn.apache.org/viewvc?rev=1742139&view=rev
Log:
Use a single read for the HTTP/2 preface (calling fill otherwise won't work).
Modified:
tomcat/trunk/java/org/apache/coyote/http11/Http11InputBuffer.java
Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11InputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11InputBuffer.java?rev=1742139&r1=1742138&r2=1742139&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11InputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11InputBuffer.java Tue May 3 16:23:04 2016
@@ -410,24 +410,18 @@ public class Http11InputBuffer implement
// Switch to the socket timeout.
wrapper.setReadTimeout(wrapper.getEndpoint().getSoTimeout());
}
- if (!keptAlive) {
+ if (!keptAlive && pos == 0 && lastValid >= CLIENT_PREFACE_START.length - 1) {
+ boolean prefaceMatch = true;
for (int i = 0; i < CLIENT_PREFACE_START.length; i++) {
- if (i == lastValid) {
- // Need more data to know if this is HTTP/2
- if (!fill(false)) {
- // A read is pending, so no longer in initial state
- parsingRequestLinePhase = 1;
- return false;
- }
- }
if (CLIENT_PREFACE_START[i] != buf[i]) {
- break;
- } else if (i == CLIENT_PREFACE_START.length - 1) {
- // HTTP/2 preface matched
- parsingRequestLinePhase = -1;
- return false;
+ prefaceMatch = false;
}
}
+ if (prefaceMatch) {
+ // HTTP/2 preface matched
+ parsingRequestLinePhase = -1;
+ return false;
+ }
}
// Set the start time once we start reading data (even if it is
// just skipping blank lines)
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org