From 3a8bf1e38f8fc5dbb1fa70e1868c5fbe6f0bb54d Mon Sep 17 00:00:00 2001 From: orignal Date: Tue, 16 Sep 2014 10:28:45 -0400 Subject: [PATCH] POST longer messages --- HTTPServer.cpp | 14 ++++++++++---- HTTPServer.h | 3 ++- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/HTTPServer.cpp b/HTTPServer.cpp index 4580eae4..c6be0173 100644 --- a/HTTPServer.cpp +++ b/HTTPServer.cpp @@ -512,7 +512,7 @@ namespace util void HTTPConnection::Receive () { - m_Socket->async_read_some (boost::asio::buffer (m_Buffer, 8191), + m_Socket->async_read_some (boost::asio::buffer (m_Buffer, HTTP_CONNECTION_BUFFER_SIZE), boost::bind(&HTTPConnection::HandleReceive, this, boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred)); } @@ -521,9 +521,15 @@ namespace util { if (!ecode) { - m_Buffer[bytes_transferred] = 0; - m_BufferLen = bytes_transferred; - RunRequest(); + if (!m_Stream) // new request + { + m_Buffer[bytes_transferred] = 0; + m_BufferLen = bytes_transferred; + RunRequest(); + } + else // follow-on + m_Stream->Send ((uint8_t *)m_Buffer, bytes_transferred, 10); + Receive (); } else if (ecode != boost::asio::error::operation_aborted) Terminate (); diff --git a/HTTPServer.h b/HTTPServer.h index 1ef1d589..0c0f44f6 100644 --- a/HTTPServer.h +++ b/HTTPServer.h @@ -11,6 +11,7 @@ namespace i2p { namespace util { + const size_t HTTP_CONNECTION_BUFFER_SIZE = 8192; class HTTPConnection { protected: @@ -68,7 +69,7 @@ namespace util boost::asio::ip::tcp::socket * m_Socket; i2p::stream::Stream * m_Stream; - char m_Buffer[8192], m_StreamBuffer[8192]; + char m_Buffer[HTTP_CONNECTION_BUFFER_SIZE + 1], m_StreamBuffer[HTTP_CONNECTION_BUFFER_SIZE + 1]; size_t m_BufferLen; request m_Request; reply m_Reply;