More work in progress

This commit is contained in:
Aleric Inglewood
2012-07-31 22:23:52 +02:00
parent cdefc0e384
commit 29908533cd
7 changed files with 37 additions and 19 deletions

View File

@@ -1231,12 +1231,12 @@ size_t CurlResponderBuffer::curlWriteCallback(char* data, size_t size, size_t nm
// to make sure that callbacks and destruction aren't done simultaneously.
AICurlEasyRequest_wat buffered_easy_request_w(*lockobj);
S32 bytes = size * nmemb; // The amount to write.
AICurlResponderBuffer_wat buffer_w(*lockobj);
// CurlResponderBuffer::setBodyLimit is never called, so buffer_w->mBodyLimit is infinite.
//S32 bytes = llmin(size * nmemb, buffer_w->mBodyLimit); buffer_w->mBodyLimit -= bytes;
S32 bytes = size * nmemb;
buffer_w->getOutput()->append(sChannels.in(), (U8 const*)data, bytes);
mResponseTransferedBytes += bytes;
buffer_w->mResponseTransferedBytes += bytes; // Accumulate data received from the server.
return bytes;
}
@@ -1252,7 +1252,8 @@ size_t CurlResponderBuffer::curlReadCallback(char* data, size_t size, size_t nme
S32 bytes = size * nmemb; // The maximum amount to read.
AICurlResponderBuffer_wat buffer_w(*lockobj);
buffer_w->mLastRead = buffer_w->getInput()->readAfter(sChannels.out(), buffer_w->mLastRead, (U8*)data, bytes);
return bytes; // Return the amount actually read.
buffer_w->mRequestTransferedBytes += bytes; // Accumulate data sent to the server.
return bytes; // Return the amount actually read (might be lowered by readAfter()).
}
//static

View File

@@ -239,6 +239,10 @@ void AICurlEasyRequestStateMachine::finish_impl(void)
AICurlEasyRequestStateMachine::AICurlEasyRequestStateMachine(bool buffered) : mBuffered(buffered), mCurlEasyRequest(buffered)
{
Dout(dc::statemachine, "Calling AICurlEasyRequestStateMachine(" << (buffered ? "true" : "false") << ") [" << (void*)this << "] [" << (void*)mCurlEasyRequest.get() << "]");
if (!mBuffered)
{
llwarns << "Using unbuffered AICurlEasyRequestStateMachine" << llendl;
}
}
//static

View File

@@ -316,7 +316,7 @@ class CurlResponderBuffer : protected AICurlEasyHandleEvents {
LLIOPipe::buffer_ptr_t mOutput;
AICurlInterface::ResponderPtr mResponder;
//U32 mBodyLimit; // From the old LLURLRequestDetail::mBodyLimit, but never used.
S32 mByteAccumulator;
S32 mRequestTransferedBytes;
S32 mResponseTransferedBytes;
public:

View File

@@ -39,7 +39,11 @@
#endif
#include <deque>
// On linux, add -DDEBUG_WINDOWS_CODE_ON_LINUX to test the windows code used in this file.
#if !defined(DEBUG_WINDOWS_CODE_ON_LINUX) || !defined(LL_LINUX) || defined(LL_RELEASE)
#undef DEBUG_WINDOWS_CODE_ON_LINUX
#define DEBUG_WINDOWS_CODE_ON_LINUX 0
#endif
#if DEBUG_WINDOWS_CODE_ON_LINUX