From: costin Date: Fri, 4 Dec 2009 08:03:16 +0000 (+0000) Subject: Added the tests - but then tried few more changes and broke them again. Fix it back. X-Git-Url: https://git.internetallee.de/?a=commitdiff_plain;h=bb520ee224bb012b586dac59f92bcf6394400d95;p=tomcat7.0 Added the tests - but then tried few more changes and broke them again. Fix it back. git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@887093 13f79535-47bb-0310-9956-ffa450edef68 --- diff --git a/modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java b/modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java index c49529a0c..f1bbba6d4 100644 --- a/modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java +++ b/modules/tomcat-lite/java/org/apache/tomcat/lite/http/Http11Connection.java @@ -64,11 +64,12 @@ public class Http11Connection extends HttpConnection { public Http11Connection(HttpConnector httpConnector) { this.httpConnector = httpConnector; - debug = true; //httpConnector.debug; + if (httpConnector != null) { + debug = httpConnector.debugHttp; + } } public void beforeRequest() { - log.info("Before request"); activeHttp = null; endSent = false; keepAlive = true; @@ -269,8 +270,9 @@ public class Http11Connection extends HttpConnection { } void closeStreamOnEnd(String cause) { - if (debug) + if (debug) { log.info("Not reusing connection because: " + cause); + } keepAlive = false; } @@ -411,7 +413,7 @@ public class Http11Connection extends HttpConnection { } } else { - receiveBodyState.noBody = http.getResponse().hasBody(); + receiveBodyState.noBody = !http.getResponse().hasBody(); updateKeepAlive(http.getResponse().getMimeHeaders(), false); @@ -751,6 +753,12 @@ public class Http11Connection extends HttpConnection { http.getRequest()); + CBuffer method = http.getRequest().method(); + if (method.equals("GET") || method.equals("HEAD")) { + // TODO: add the others + sendBodyState.noBody = true; + } + // 1.0: The presence of an entity body in a request is signaled by // the inclusion of a Content-Length header field in the request // message headers. HTTP/1.0 requests containing an entity body @@ -953,13 +961,14 @@ public class Http11Connection extends HttpConnection { // ( like 'upgrade') CBuffer value = headers.getHeader(CONNECTION); - String conHeader = (value == null) ? null : value.toString(); - if (conHeader != null) { - if (CLOSE.equalsIgnoreCase(conHeader)) { + // TODO: split it by space + if (value != null) { + value.toLower(); + if (value.indexOf(CLOSE) >= 0) { // 1.1 ( but we accept it for 1.0 too ) closeStreamOnEnd("connection close"); } - if (http10 && conHeader.indexOf(KEEPALIVE_S) < 0) { + if (http10 && value.indexOf(KEEPALIVE_S) < 0) { // Keep-Alive required for http/1.0 closeStreamOnEnd("connection != keep alive"); } @@ -1362,6 +1371,7 @@ public class Http11Connection extends HttpConnection { chunked = false; remaining = 0; contentLength = -1; + noBody = false; } public boolean isContentDelimited() { return chunked || contentLength >= 0; diff --git a/modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java b/modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java index 3050bf184..37279e3b2 100644 --- a/modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java +++ b/modules/tomcat-lite/java/org/apache/tomcat/lite/http/HttpConnector.java @@ -15,10 +15,8 @@ import java.util.concurrent.atomic.AtomicInteger; import java.util.logging.Logger; import org.apache.tomcat.lite.http.HttpChannel.HttpService; -import org.apache.tomcat.lite.http.SpdyConnection.SpdyConnectionManager; import org.apache.tomcat.lite.io.BBuffer; import org.apache.tomcat.lite.io.DumpChannel; -import org.apache.tomcat.lite.io.BBucket; import org.apache.tomcat.lite.io.IOBuffer; import org.apache.tomcat.lite.io.IOChannel; import org.apache.tomcat.lite.io.IOConnector; @@ -376,7 +374,6 @@ public class HttpConnector { private class AcceptorCallback implements IOConnector.ConnectedCallback { @Override public void handleConnected(IOChannel accepted) throws IOException { - System.err.println("ACCEPTED " + accepted); handleAccepted(accepted); } } diff --git a/modules/tomcat-lite/test/org/apache/tomcat/lite/http/HttpChannelInMemoryTest.java b/modules/tomcat-lite/test/org/apache/tomcat/lite/http/HttpChannelInMemoryTest.java index 7f50b5787..76580a1fd 100644 --- a/modules/tomcat-lite/test/org/apache/tomcat/lite/http/HttpChannelInMemoryTest.java +++ b/modules/tomcat-lite/test/org/apache/tomcat/lite/http/HttpChannelInMemoryTest.java @@ -198,7 +198,7 @@ public class HttpChannelInMemoryTest extends TestCase { MultiMap headers = http.getRequest().getMimeHeaders(); CBuffer cookie = headers.getHeader("Cookie"); CBuffer conn = headers.getHeader("Connection"); - assertEquals(conn.toString(), "Close"); + assertEquals(conn.toString(), "close"); assertEquals(cookie.toString(), "1234 456"); assertEquals(http.conn.headRecvBuf.toString(), diff --git a/modules/tomcat-lite/test/org/apache/tomcat/lite/http/HttpsTest.java b/modules/tomcat-lite/test/org/apache/tomcat/lite/http/HttpsTest.java index eb2f9fed8..b365e95a3 100644 --- a/modules/tomcat-lite/test/org/apache/tomcat/lite/http/HttpsTest.java +++ b/modules/tomcat-lite/test/org/apache/tomcat/lite/http/HttpsTest.java @@ -120,6 +120,7 @@ public class HttpsTest extends TestCase { SslConnector sslCon = new SslConnector(); httpClient = new HttpConnector(sslCon); HttpRequest client = httpClient.request("www.google.com", 443); + client.getHttpChannel().setIOTimeout(2000); client.setRequestURI("/accounts/ServiceLogin"); client.send();