298502 Handle 200 Connect responses with no content-length

This commit is contained in:
Greg Wilkins 2011-07-15 15:50:41 +10:00
parent 6349100c9d
commit 61b2a5c751
3 changed files with 18 additions and 9 deletions

View File

@ -1,5 +1,5 @@
jetty-7.5.0-SNAPSHOT
+ 298502 Added test harness to demonstrate issue
+ 298502 Handle 200 Connect responses with no content-length
+ 351516 Refactored sessions to better support nosql session managers
+ 351576 Do not use deprecated method File.toURL()
+ 352046 Need try/catch around features set in XmlParser

View File

@ -567,9 +567,14 @@ public class HttpConnection extends AbstractConnection implements Dumpable
@Override
public void startResponse(Buffer version, int status, Buffer reason) throws IOException
{
HttpExchange exchange = _exchange;
if (exchange!=null)
{
// handle special case for CONNECT 200 responses
if (status==HttpStatus.OK_200 && HttpMethods.CONNECT.equalsIgnoreCase(exchange.getMethod()))
_parser.setHeadResponse(true);
_http11 = HttpVersions.HTTP_1_1_BUFFER.equals(version);
_status=status;
exchange.getEventListener().onResponseStatus(version,status,reason);

View File

@ -118,21 +118,25 @@ public class ProxyFakeTunnelTest extends ProxyTunnellingTest
state=6;
System.err.println("address="+address);
String[] parts=address.split(":");
String result="200 OK";
try
{
toserver = new Socket(parts[0],Integer.parseInt(parts[1]));
out.write((
"HTTP/1.1 200 OK\r\n"+
"Server: fake\r\n"+
// "Content-Length: 0\r\n"+
"\r\n"
).getBytes());
}
catch(IOException e)
{
result="503 Unavailable";
out.write((
"HTTP/1.1 503 Unavailable\r\n"+
"Server: fake\r\n"+
"Content-Length: 0\r\n"+
"\r\n"
).getBytes());
}
out.write((
"HTTP/1.1 "+result+"\r\n"+
"Server: fake\r\n"+
"Content-Length: 0\r\n"+ // TODO test fails without this!
"\r\n"
).getBytes());
out.flush();
System.err.println(toserver);