From 431807f25e8a9cde36c5da1b77e528a70a01aa8b Mon Sep 17 00:00:00 2001 From: Guenter Obiltschnig Date: Thu, 28 Dec 2006 12:51:57 +0000 Subject: [PATCH] integrated changes from main repository --- Net/src/HTTPChunkedStream.cpp | 9 +++++++-- Net/src/HTTPClientSession.cpp | 5 +++-- Net/testsuite/src/HTTPServerTest.cpp | 10 +++++----- Net/testsuite/src/HTTPTestServer.cpp | 4 ++-- 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/Net/src/HTTPChunkedStream.cpp b/Net/src/HTTPChunkedStream.cpp index 66f7605ca..5c4fe3666 100644 --- a/Net/src/HTTPChunkedStream.cpp +++ b/Net/src/HTTPChunkedStream.cpp @@ -1,7 +1,7 @@ // // HTTPChunkedStream.cpp // -// $Id: //poco/1.3/Net/src/HTTPChunkedStream.cpp#2 $ +// $Id: //poco/1.3/Net/src/HTTPChunkedStream.cpp#3 $ // // Library: Net // Package: HTTP @@ -102,7 +102,12 @@ int HTTPChunkedStreamBuf::readFromDevice(char* buffer, std::streamsize length) if (n > 0) _chunk -= n; return n; } - else return 0; + else + { + int ch = _session.get(); + while (ch != eof && ch != '\n') ch = _session.get(); + return 0; + } } diff --git a/Net/src/HTTPClientSession.cpp b/Net/src/HTTPClientSession.cpp index 55c6fa63b..04f661769 100644 --- a/Net/src/HTTPClientSession.cpp +++ b/Net/src/HTTPClientSession.cpp @@ -1,7 +1,7 @@ // // HTTPClientSession.cpp // -// $Id: //poco/1.3/Net/src/HTTPClientSession.cpp#1 $ +// $Id: //poco/1.3/Net/src/HTTPClientSession.cpp#2 $ // // Library: Net // Package: HTTPClient @@ -164,7 +164,8 @@ std::ostream& HTTPClientSession::sendRequest(HTTPRequest& request) close(); if (!connected()) reconnect(); - request.setKeepAlive(keepAlive); + if (!keepAlive) + request.setKeepAlive(false); request.setHost(_host, _port); if (!_proxyHost.empty()) request.setURI(getHostInfo() + request.getURI()); diff --git a/Net/testsuite/src/HTTPServerTest.cpp b/Net/testsuite/src/HTTPServerTest.cpp index edec879da..c30070e32 100644 --- a/Net/testsuite/src/HTTPServerTest.cpp +++ b/Net/testsuite/src/HTTPServerTest.cpp @@ -1,7 +1,7 @@ // // HTTPServerTest.cpp // -// $Id: //poco/1.3/Net/testsuite/src/HTTPServerTest.cpp#1 $ +// $Id: //poco/1.3/Net/testsuite/src/HTTPServerTest.cpp#2 $ // // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. // and Contributors. @@ -249,7 +249,7 @@ void HTTPServerTest::testIdentityRequestKeepAlive() HTTPClientSession cs("localhost", svs.address().port()); cs.setKeepAlive(true); std::string body(5000, 'x'); - HTTPRequest request("POST", "/echoBody"); + HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); request.setContentLength((int) body.length()); request.setContentType("text/plain"); cs.sendRequest(request) << body; @@ -263,7 +263,7 @@ void HTTPServerTest::testIdentityRequestKeepAlive() body.assign(1000, 'y'); request.setContentLength((int) body.length()); - cs.setKeepAlive(false); + request.setKeepAlive(false); cs.sendRequest(request) << body; cs.receiveResponse(response) >> rbody; assert (response.getContentLength() == body.size()); @@ -283,7 +283,7 @@ void HTTPServerTest::testChunkedRequestKeepAlive() HTTPClientSession cs("localhost", svs.address().port()); cs.setKeepAlive(true); std::string body(5000, 'x'); - HTTPRequest request("POST", "/echoBody"); + HTTPRequest request("POST", "/echoBody", HTTPMessage::HTTP_1_1); request.setContentType("text/plain"); request.setChunkedTransferEncoding(true); cs.sendRequest(request) << body; @@ -296,7 +296,7 @@ void HTTPServerTest::testChunkedRequestKeepAlive() assert (rbody == body); body.assign(1000, 'y'); - cs.setKeepAlive(false); + request.setKeepAlive(false); cs.sendRequest(request) << body; cs.receiveResponse(response) >> rbody; assert (response.getContentLength() == HTTPMessage::UNKNOWN_CONTENT_LENGTH); diff --git a/Net/testsuite/src/HTTPTestServer.cpp b/Net/testsuite/src/HTTPTestServer.cpp index c9ed819ba..cbca35c06 100644 --- a/Net/testsuite/src/HTTPTestServer.cpp +++ b/Net/testsuite/src/HTTPTestServer.cpp @@ -1,7 +1,7 @@ // // HTTPTestServer.cpp // -// $Id: //poco/1.3/Net/testsuite/src/HTTPTestServer.cpp#1 $ +// $Id: //poco/1.3/Net/testsuite/src/HTTPTestServer.cpp#2 $ // // Copyright (c) 2005-2006, Applied Informatics Software Engineering GmbH. // and Contributors. @@ -199,7 +199,7 @@ std::string HTTPTestServer::handleRequest() const response.append(NumberFormatter::formatHex((unsigned) body.length())); response.append("\r\n"); response.append(body); - response.append("\r\n0\r\n"); + response.append("\r\n0\r\n\r\n"); response.append("HTTP/1.1 200 OK\r\n"); response.append("Connection: close\r\n"); response.append("Content-Type: text/plain\r\n");