mirror of
https://github.com/pocoproject/poco.git
synced 2025-10-23 00:07:59 +02:00
sync to internal repository
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// DNS.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/DNS.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/DNS.cpp#8 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: NetCore
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// DatagramSocket.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/DatagramSocket.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/DatagramSocket.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// DatagramSocketImpl.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/DatagramSocketImpl.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/DatagramSocketImpl.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// DialogSocket.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/DialogSocket.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/DialogSocket.cpp#9 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
@@ -172,7 +172,7 @@ int DialogSocket::get()
|
||||
{
|
||||
refill();
|
||||
if (_pNext != _pEnd)
|
||||
return *_pNext++;
|
||||
return std::char_traits<char>::to_int_type(*_pNext++);
|
||||
else
|
||||
return EOF_CHAR;
|
||||
}
|
||||
@@ -182,7 +182,7 @@ int DialogSocket::peek()
|
||||
{
|
||||
refill();
|
||||
if (_pNext != _pEnd)
|
||||
return *_pNext;
|
||||
return std::char_traits<char>::to_int_type(*_pNext);
|
||||
else
|
||||
return EOF_CHAR;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// FTPClientSession.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/FTPClientSession.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/FTPClientSession.cpp#7 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: FTP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// FTPStreamFactory.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/FTPStreamFactory.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/FTPStreamFactory.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: FTP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// FilePartSource.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/FilePartSource.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/FilePartSource.cpp#7 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Messages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTMLForm.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTMLForm.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTMLForm.cpp#16 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTML
|
||||
@@ -42,6 +42,7 @@
|
||||
#include "Poco/Net/MultipartReader.h"
|
||||
#include "Poco/Net/NullPartHandler.h"
|
||||
#include "Poco/NullStream.h"
|
||||
#include "Poco/CountingStream.h"
|
||||
#include "Poco/StreamCopier.h"
|
||||
#include "Poco/Exception.h"
|
||||
#include "Poco/URI.h"
|
||||
@@ -179,6 +180,10 @@ void HTMLForm::prepareSubmit(HTTPRequest& request)
|
||||
if (_encoding == ENCODING_URL)
|
||||
{
|
||||
request.setContentType(_encoding);
|
||||
request.setChunkedTransferEncoding(false);
|
||||
Poco::CountingOutputStream ostr;
|
||||
writeUrl(ostr);
|
||||
request.setContentLength(ostr.chars());
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -194,7 +199,7 @@ void HTMLForm::prepareSubmit(HTTPRequest& request)
|
||||
request.setKeepAlive(false);
|
||||
request.setChunkedTransferEncoding(false);
|
||||
}
|
||||
else
|
||||
else if (_encoding != ENCODING_URL)
|
||||
{
|
||||
request.setChunkedTransferEncoding(true);
|
||||
}
|
||||
@@ -203,7 +208,7 @@ void HTMLForm::prepareSubmit(HTTPRequest& request)
|
||||
{
|
||||
std::string uri = request.getURI();
|
||||
std::ostringstream ostr;
|
||||
write(ostr);
|
||||
writeUrl(ostr);
|
||||
uri.append("?");
|
||||
uri.append(ostr.str());
|
||||
request.setURI(uri);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPBasicCredentials.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPBasicCredentials.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPBasicCredentials.cpp#5 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPChunkedStream.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPChunkedStream.cpp#3 $
|
||||
// $Id: //poco/Main/Net/src/HTTPChunkedStream.cpp#12 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTP
|
||||
@@ -113,11 +113,11 @@ int HTTPChunkedStreamBuf::readFromDevice(char* buffer, std::streamsize length)
|
||||
|
||||
int HTTPChunkedStreamBuf::writeToDevice(const char* buffer, std::streamsize length)
|
||||
{
|
||||
std::string chunkSize(NumberFormatter::formatHex(length));
|
||||
chunkSize.append("\r\n");
|
||||
_session.write(chunkSize.data(), (std::streamsize) chunkSize.length());
|
||||
_session.write(buffer, length);
|
||||
_session.write("\r\n", 2);
|
||||
_chunkBuffer = NumberFormatter::formatHex(length);
|
||||
_chunkBuffer.append("\r\n", 2);
|
||||
_chunkBuffer.append(buffer, length);
|
||||
_chunkBuffer.append("\r\n", 2);
|
||||
_session.write(_chunkBuffer.data(), static_cast<std::streamsize>(_chunkBuffer.size()));
|
||||
return length;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPClientSession.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPClientSession.cpp#2 $
|
||||
// $Id: //poco/Main/Net/src/HTTPClientSession.cpp#16 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTPClient
|
||||
@@ -43,6 +43,7 @@
|
||||
#include "Poco/Net/HTTPChunkedStream.h"
|
||||
#include "Poco/Net/NetException.h"
|
||||
#include "Poco/NumberFormatter.h"
|
||||
#include "Poco/CountingStream.h"
|
||||
|
||||
|
||||
using Poco::NumberFormatter;
|
||||
@@ -57,6 +58,7 @@ HTTPClientSession::HTTPClientSession():
|
||||
_port(HTTPSession::HTTP_PORT),
|
||||
_proxyPort(HTTPSession::HTTP_PORT),
|
||||
_reconnect(false),
|
||||
_mustReconnect(false),
|
||||
_expectResponseBody(false),
|
||||
_pRequestStream(0),
|
||||
_pResponseStream(0)
|
||||
@@ -69,6 +71,7 @@ HTTPClientSession::HTTPClientSession(const StreamSocket& socket):
|
||||
_port(HTTPSession::HTTP_PORT),
|
||||
_proxyPort(HTTPSession::HTTP_PORT),
|
||||
_reconnect(false),
|
||||
_mustReconnect(false),
|
||||
_expectResponseBody(false),
|
||||
_pRequestStream(0),
|
||||
_pResponseStream(0)
|
||||
@@ -81,6 +84,7 @@ HTTPClientSession::HTTPClientSession(const SocketAddress& address):
|
||||
_port(address.port()),
|
||||
_proxyPort(HTTPSession::HTTP_PORT),
|
||||
_reconnect(false),
|
||||
_mustReconnect(false),
|
||||
_expectResponseBody(false),
|
||||
_pRequestStream(0),
|
||||
_pResponseStream(0)
|
||||
@@ -93,6 +97,7 @@ HTTPClientSession::HTTPClientSession(const std::string& host, Poco::UInt16 port)
|
||||
_port(port),
|
||||
_proxyPort(HTTPSession::HTTP_PORT),
|
||||
_reconnect(false),
|
||||
_mustReconnect(false),
|
||||
_expectResponseBody(false),
|
||||
_pRequestStream(0),
|
||||
_pResponseStream(0)
|
||||
@@ -160,8 +165,11 @@ std::ostream& HTTPClientSession::sendRequest(HTTPRequest& request)
|
||||
_pResponseStream = 0;
|
||||
|
||||
bool keepAlive = getKeepAlive();
|
||||
if (connected() && !keepAlive)
|
||||
if (connected() && !keepAlive || _mustReconnect)
|
||||
{
|
||||
close();
|
||||
_mustReconnect = false;
|
||||
}
|
||||
if (!connected())
|
||||
reconnect();
|
||||
if (!keepAlive)
|
||||
@@ -169,20 +177,33 @@ std::ostream& HTTPClientSession::sendRequest(HTTPRequest& request)
|
||||
request.setHost(_host, _port);
|
||||
if (!_proxyHost.empty())
|
||||
request.setURI(getHostInfo() + request.getURI());
|
||||
HTTPHeaderOutputStream hos(*this);
|
||||
_reconnect = keepAlive;
|
||||
request.write(hos);
|
||||
_reconnect = false;
|
||||
_expectResponseBody = request.getMethod() != HTTPRequest::HTTP_HEAD;
|
||||
if (request.getChunkedTransferEncoding())
|
||||
{
|
||||
HTTPHeaderOutputStream hos(*this);
|
||||
request.write(hos);
|
||||
_pRequestStream = new HTTPChunkedOutputStream(*this);
|
||||
}
|
||||
else if (request.getContentLength() != HTTPMessage::UNKNOWN_CONTENT_LENGTH)
|
||||
_pRequestStream = new HTTPFixedLengthOutputStream(*this, request.getContentLength());
|
||||
{
|
||||
Poco::CountingOutputStream cs;
|
||||
request.write(cs);
|
||||
_pRequestStream = new HTTPFixedLengthOutputStream(*this, request.getContentLength() + cs.chars());
|
||||
request.write(*_pRequestStream);
|
||||
}
|
||||
else if (request.getMethod() == HTTPRequest::HTTP_GET || request.getMethod() == HTTPRequest::HTTP_HEAD)
|
||||
_pRequestStream = new HTTPFixedLengthOutputStream(*this, 0);
|
||||
{
|
||||
Poco::CountingOutputStream cs;
|
||||
request.write(cs);
|
||||
_pRequestStream = new HTTPFixedLengthOutputStream(*this, cs.chars());
|
||||
request.write(*_pRequestStream);
|
||||
}
|
||||
else
|
||||
{
|
||||
_pRequestStream = new HTTPOutputStream(*this);
|
||||
|
||||
request.write(*_pRequestStream);
|
||||
}
|
||||
return *_pRequestStream;
|
||||
}
|
||||
|
||||
@@ -210,6 +231,8 @@ std::istream& HTTPClientSession::receiveResponse(HTTPResponse& response)
|
||||
}
|
||||
while (response.getStatus() == HTTPResponse::HTTP_CONTINUE);
|
||||
|
||||
_mustReconnect = getKeepAlive() && !response.getKeepAlive();
|
||||
|
||||
if (!_expectResponseBody)
|
||||
_pResponseStream = new HTTPFixedLengthInputStream(*this, 0);
|
||||
else if (response.getChunkedTransferEncoding())
|
||||
@@ -239,6 +262,7 @@ int HTTPClientSession::write(const char* buffer, std::streamsize length)
|
||||
}
|
||||
else throw;
|
||||
}
|
||||
_reconnect = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPCookie.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPCookie.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPCookie.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTP
|
||||
@@ -111,7 +111,7 @@ HTTPCookie::HTTPCookie(const NameValueCollection& nvc):
|
||||
int tzd;
|
||||
DateTime exp = DateTimeParser::parse(value, tzd);
|
||||
Timestamp now;
|
||||
setMaxAge((int) ((exp.timestamp() - now)/1000000));
|
||||
setMaxAge((int) ((exp.timestamp() - now)/Timestamp::resolution()));
|
||||
}
|
||||
else if (icompare(name, "version") == 0)
|
||||
{
|
||||
@@ -240,9 +240,9 @@ std::string HTTPCookie::toString() const
|
||||
if (_maxAge >= 0)
|
||||
{
|
||||
Timestamp ts;
|
||||
ts += _maxAge*1000000;
|
||||
ts += _maxAge*Timestamp::resolution();
|
||||
result.append("; expires=");
|
||||
result.append(DateTimeFormatter::format(ts, DateTimeFormat::RFC850_FORMAT));
|
||||
result.append(DateTimeFormatter::format(ts, DateTimeFormat::HTTP_FORMAT));
|
||||
}
|
||||
if (_secure)
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPFixedLengthStream.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPFixedLengthStream.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPFixedLengthStream.cpp#9 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPHeaderStream.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPHeaderStream.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPHeaderStream.cpp#9 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPMessage.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPMessage.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPMessage.cpp#7 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPRequest.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPRequest.cpp#2 $
|
||||
// $Id: //poco/Main/Net/src/HTTPRequest.cpp#10 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPRequestHandler.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPRequestHandler.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPRequestHandler.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTPServer
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPRequestHandlerFactory.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPRequestHandlerFactory.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPRequestHandlerFactory.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTPServer
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPResponse.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPResponse.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPResponse.cpp#10 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPServer.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPServer.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPServer.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTPServer
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPServerConnection.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPServerConnection.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPServerConnection.cpp#8 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTPServer
|
||||
@@ -74,30 +74,51 @@ void HTTPServerConnection::run()
|
||||
HTTPServerSession session(socket(), _pParams);
|
||||
while (session.hasMoreRequests())
|
||||
{
|
||||
HTTPServerRequest request(session, _pParams);
|
||||
HTTPServerResponse response(session);
|
||||
response.setVersion(request.getVersion());
|
||||
response.setKeepAlive(_pParams->getKeepAlive() && request.getKeepAlive());
|
||||
if (!server.empty())
|
||||
response.set("Server", server);
|
||||
std::auto_ptr<HTTPRequestHandler> pHandler(_pFactory->createRequestHandler(request));
|
||||
if (pHandler.get())
|
||||
try
|
||||
{
|
||||
if (request.expectContinue())
|
||||
response.sendContinue();
|
||||
|
||||
pHandler->handleRequest(request, response);
|
||||
session.setKeepAlive(_pParams->getKeepAlive() && response.getKeepAlive());
|
||||
HTTPServerRequest request(session, _pParams);
|
||||
HTTPServerResponse response(session);
|
||||
response.setVersion(request.getVersion());
|
||||
response.setKeepAlive(_pParams->getKeepAlive() && request.getKeepAlive() && session.canKeepAlive());
|
||||
if (!server.empty())
|
||||
response.set("Server", server);
|
||||
try
|
||||
{
|
||||
std::auto_ptr<HTTPRequestHandler> pHandler(_pFactory->createRequestHandler(request));
|
||||
if (pHandler.get())
|
||||
{
|
||||
if (request.expectContinue())
|
||||
response.sendContinue();
|
||||
|
||||
pHandler->handleRequest(request, response);
|
||||
session.setKeepAlive(_pParams->getKeepAlive() && response.getKeepAlive() && session.canKeepAlive());
|
||||
}
|
||||
else sendErrorResponse(session, HTTPResponse::HTTP_NOT_IMPLEMENTED);
|
||||
}
|
||||
catch (Poco::Exception&)
|
||||
{
|
||||
if (!response.sent())
|
||||
sendErrorResponse(session, HTTPResponse::HTTP_INTERNAL_SERVER_ERROR);
|
||||
throw;
|
||||
}
|
||||
}
|
||||
else
|
||||
catch (MessageException&)
|
||||
{
|
||||
response.setStatusAndReason(HTTPResponse::HTTP_NOT_IMPLEMENTED);
|
||||
response.setKeepAlive(false);
|
||||
response.send();
|
||||
session.setKeepAlive(false);
|
||||
sendErrorResponse(session, HTTPResponse::HTTP_BAD_REQUEST);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
void HTTPServerConnection::sendErrorResponse(HTTPServerSession& session, HTTPResponse::HTTPStatus status)
|
||||
{
|
||||
HTTPServerResponse response(session);
|
||||
response.setVersion(HTTPMessage::HTTP_1_1);
|
||||
response.setStatusAndReason(status);
|
||||
response.setKeepAlive(false);
|
||||
response.send();
|
||||
session.setKeepAlive(false);
|
||||
}
|
||||
|
||||
|
||||
} } // namespace Poco::Net
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPServerConnectionFactory.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPServerConnectionFactory.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPServerConnectionFactory.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTPServer
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPServerParams.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPServerParams.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPServerParams.cpp#5 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTPServer
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPServerRequest.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPServerRequest.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPServerRequest.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTPServer
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPServerResponse.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPServerResponse.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPServerResponse.cpp#10 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTPServer
|
||||
@@ -44,6 +44,7 @@
|
||||
#include "Poco/Timestamp.h"
|
||||
#include "Poco/NumberFormatter.h"
|
||||
#include "Poco/StreamCopier.h"
|
||||
#include "Poco/CountingStream.h"
|
||||
#include "Poco/Exception.h"
|
||||
#include <fstream>
|
||||
|
||||
@@ -85,20 +86,23 @@ std::ostream& HTTPServerResponse::send()
|
||||
|
||||
if (getChunkedTransferEncoding())
|
||||
{
|
||||
HTTPHeaderOutputStream hs(_session);
|
||||
write(hs);
|
||||
_pStream = new HTTPChunkedOutputStream(_session);
|
||||
}
|
||||
else if (getContentLength() != HTTPMessage::UNKNOWN_CONTENT_LENGTH)
|
||||
{
|
||||
_pStream = new HTTPFixedLengthOutputStream(_session, getContentLength());
|
||||
Poco::CountingOutputStream cs;
|
||||
write(cs);
|
||||
_pStream = new HTTPFixedLengthOutputStream(_session, getContentLength() + cs.chars());
|
||||
write(*_pStream);
|
||||
}
|
||||
else
|
||||
{
|
||||
_pStream = new HTTPOutputStream(_session);
|
||||
setKeepAlive(false);
|
||||
write(*_pStream);
|
||||
}
|
||||
HTTPHeaderOutputStream hs(_session);
|
||||
write(hs);
|
||||
|
||||
return *_pStream;
|
||||
}
|
||||
|
||||
@@ -111,19 +115,34 @@ void HTTPServerResponse::sendFile(const std::string& path, const std::string& me
|
||||
Timestamp dateTime = f.getLastModified();
|
||||
File::FileSize length = f.getSize();
|
||||
setDate(dateTime);
|
||||
setContentLength((int) length);
|
||||
setContentLength(static_cast<int>(length));
|
||||
setContentType(mediaType);
|
||||
setChunkedTransferEncoding(false);
|
||||
|
||||
std::ifstream istr(path.c_str(), std::ios::binary | std::ios::in);
|
||||
if (istr.good())
|
||||
{
|
||||
send();
|
||||
_pStream = new HTTPOutputStream(_session);
|
||||
write(*_pStream);
|
||||
StreamCopier::copyStream(istr, *_pStream);
|
||||
}
|
||||
else throw OpenFileException(path);
|
||||
}
|
||||
|
||||
|
||||
void HTTPServerResponse::sendBuffer(const void* pBuffer, std::size_t length)
|
||||
{
|
||||
poco_assert (!_pStream);
|
||||
|
||||
setContentLength(static_cast<int>(length));
|
||||
setChunkedTransferEncoding(false);
|
||||
|
||||
_pStream = new HTTPOutputStream(_session);
|
||||
write(*_pStream);
|
||||
_pStream->write(static_cast<const char*>(pBuffer), static_cast<std::streamsize>(length));
|
||||
}
|
||||
|
||||
|
||||
void HTTPServerResponse::redirect(const std::string& uri)
|
||||
{
|
||||
poco_assert (!_pStream);
|
||||
@@ -131,8 +150,8 @@ void HTTPServerResponse::redirect(const std::string& uri)
|
||||
setStatusAndReason(HTTPResponse::HTTP_FOUND);
|
||||
set("Location", uri);
|
||||
|
||||
HTTPHeaderOutputStream hs(_session);
|
||||
write(hs);
|
||||
_pStream = new HTTPOutputStream(_session);
|
||||
write(*_pStream);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPServerSession.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPServerSession.cpp#2 $
|
||||
// $Id: //poco/Main/Net/src/HTTPServerSession.cpp#7 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTPServer
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPSession.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPSession.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPSession.cpp#10 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTP
|
||||
@@ -192,6 +192,7 @@ bool HTTPSession::connected() const
|
||||
void HTTPSession::connect(const SocketAddress& address)
|
||||
{
|
||||
_socket.connect(address, _timeout);
|
||||
_socket.setNoDelay(true);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPSessionFactory.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPSessionFactory.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPSessionFactory.cpp#11 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTPClient
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPSessionInstantiator.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPSessionInstantiator.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPSessionInstantiator.cpp#4 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTPClient
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPStream.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPStream.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPStream.cpp#9 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HTTPStreamFactory.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HTTPStreamFactory.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HTTPStreamFactory.cpp#11 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: HTTP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// HostEntry.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/HostEntry.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/HostEntry.cpp#7 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: NetCore
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// ICMPClient.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/ICMPClient.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/ICMPClient.cpp#5 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: ICMP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// ICMPEventArgs.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/ICMPEventArgs.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/ICMPEventArgs.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: ICMP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// ICMPPacket.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/ICMPPacket.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/ICMPPacket.cpp#4 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: ICMP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// ICMPPacketImpl.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/ICMPPacketImpl.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/ICMPPacketImpl.cpp#5 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: ICMP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// ICMPSocket.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/ICMPSocket.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/ICMPSocket.cpp#4 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: ICMP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// ICMPSocketImpl.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/ICMPSocketImpl.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/ICMPSocketImpl.cpp#5 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: ICMP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// ICMPv4PacketImpl.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/ICMPv4PacketImpl.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/ICMPv4PacketImpl.cpp#4 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: ICMP
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// IPAddress.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/IPAddress.cpp#2 $
|
||||
// $Id: //poco/Main/Net/src/IPAddress.cpp#13 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: NetCore
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// MailMessage.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/MailMessage.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/MailMessage.cpp#9 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Mail
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// MailRecipient.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/MailRecipient.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/MailRecipient.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Mail
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// MailStream.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/MailStream.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/MailStream.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Mail
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// MediaType.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/MediaType.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/MediaType.cpp#7 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Messages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// MessageHeader.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/MessageHeader.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/MessageHeader.cpp#11 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Messages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// MulticastSocket.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/MulticastSocket.cpp#2 $
|
||||
// $Id: //poco/Main/Net/src/MulticastSocket.cpp#10 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// MultipartReader.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/MultipartReader.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/MultipartReader.cpp#10 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Messages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// MultipartWriter.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/MultipartWriter.cpp#2 $
|
||||
// $Id: //poco/Main/Net/src/MultipartWriter.cpp#7 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Messages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// NameValueCollection.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/NameValueCollection.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/NameValueCollection.cpp#7 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Messages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// NetException.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/NetException.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/NetException.cpp#15 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: NetCore
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// NetworkInterface.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/NetworkInterface.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/NetworkInterface.cpp#16 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// NullPartHandler.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/NullPartHandler.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/NullPartHandler.cpp#5 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Messages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// POP3ClientSession.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/POP3ClientSession.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/POP3ClientSession.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Mail
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// PartHandler.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/PartHandler.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/PartHandler.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Messages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// PartSource.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/PartSource.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/PartSource.cpp#7 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Messages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// QuotedPrintableDecoder.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/QuotedPrintableDecoder.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/QuotedPrintableDecoder.cpp#8 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Messages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// QuotedPrintableEncoder.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/QuotedPrintableEncoder.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/QuotedPrintableEncoder.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Messages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// RawSocket.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/RawSocket.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/RawSocket.cpp#4 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// RawSocketImpl.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/RawSocketImpl.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/RawSocketImpl.cpp#9 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// RemoteSyslogChannel.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/RemoteSyslogChannel.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/RemoteSyslogChannel.cpp#2 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Logging
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// SMTPClientSession.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/SMTPClientSession.cpp#2 $
|
||||
// $Id: //poco/Main/Net/src/SMTPClientSession.cpp#8 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Mail
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// ServerSocket.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/ServerSocket.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/ServerSocket.cpp#11 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// ServerSocketImpl.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/ServerSocketImpl.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/ServerSocketImpl.cpp#5 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// Socket.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/Socket.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/Socket.cpp#10 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// SocketAddress.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/SocketAddress.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/SocketAddress.cpp#12 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: NetCore
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// SocketImpl.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/SocketImpl.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/SocketImpl.cpp#17 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// SocketNotification.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/SocketNotification.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/SocketNotification.cpp#5 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Reactor
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// SocketNotifier.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/SocketNotifier.cpp#2 $
|
||||
// $Id: //poco/Main/Net/src/SocketNotifier.cpp#9 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Reactor
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// SocketReactor.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/SocketReactor.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/SocketReactor.cpp#5 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Reactor
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// SocketStream.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/SocketStream.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/SocketStream.cpp#8 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// StreamSocket.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/StreamSocket.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/StreamSocket.cpp#8 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// StreamSocketImpl.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/StreamSocketImpl.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/StreamSocketImpl.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Sockets
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// StringPartSource.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/StringPartSource.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/StringPartSource.cpp#7 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: Messages
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// TCPServer.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/TCPServer.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/TCPServer.cpp#10 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: TCPServer
|
||||
@@ -102,14 +102,16 @@ void TCPServer::stop()
|
||||
|
||||
void TCPServer::run()
|
||||
{
|
||||
while (!_stopped)
|
||||
{
|
||||
while (!_stopped)
|
||||
{
|
||||
Poco::Timespan timeout(250000);
|
||||
if (_socket.poll(timeout, Socket::SELECT_READ))
|
||||
{
|
||||
try
|
||||
{
|
||||
StreamSocket ss = _socket.acceptConnection();
|
||||
// enabe nodelay per default: OSX really needs that
|
||||
ss.setNoDelay(true);
|
||||
_pDispatcher->enqueue(ss);
|
||||
}
|
||||
catch (Poco::Exception& exc)
|
||||
@@ -125,7 +127,7 @@ void TCPServer::run()
|
||||
ErrorHandler::handle();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// TCPServerConnection.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/TCPServerConnection.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/TCPServerConnection.cpp#7 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: TCPServer
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// TCPServerConnectionFactory.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/TCPServerConnectionFactory.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/TCPServerConnectionFactory.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: TCPServer
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// TCPServerDispatcher.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/TCPServerDispatcher.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/TCPServerDispatcher.cpp#8 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: TCPServer
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
//
|
||||
// TCPServerParams.cpp
|
||||
//
|
||||
// $Id: //poco/1.3/Net/src/TCPServerParams.cpp#1 $
|
||||
// $Id: //poco/Main/Net/src/TCPServerParams.cpp#6 $
|
||||
//
|
||||
// Library: Net
|
||||
// Package: TCPServer
|
||||
|
||||
Reference in New Issue
Block a user