summaryrefslogtreecommitdiff
path: root/indra/llcorehttp/_httpoperation.cpp
diff options
context:
space:
mode:
authorMonty Brandenberg <monty@lindenlab.com>2012-06-12 17:42:33 -0400
committerMonty Brandenberg <monty@lindenlab.com>2012-06-12 17:42:33 -0400
commit7adeb3923728ca84a309a6af141c148ce38066fc (patch)
tree1d2395b61eaa90b670fdd356bb8010b75b49f99a /indra/llcorehttp/_httpoperation.cpp
parent24e16e1632974057013b86300bb60954ea6f5684 (diff)
HTTP Proxy, PUT & POST, unit tests and refactoring.
Implemented/modified PUT & POST to not used chunked encoding for the request. Made the unit test much happier and probably a better thing for the pipeline. Have a cheesy static & dynamic proxy capability using both local options and a way to wire into LLProxy in llmessages. Not a clean thing but it will get the proxy path working with both socks5 & http proxies. Refactoring to get rid of unneeded library handler and unified an HttpStatus return for all requests. Big batch of code removed as a result of that and more is possible as well as some syscall avoidance with a bit more work. Boosted the unit tests for simple PUT & POST test which revealed the test harness does *not* like chunked encoding so we'll avoid it for now (and don't really need it in any of our schemes).
Diffstat (limited to 'indra/llcorehttp/_httpoperation.cpp')
-rw-r--r--indra/llcorehttp/_httpoperation.cpp18
1 files changed, 7 insertions, 11 deletions
diff --git a/indra/llcorehttp/_httpoperation.cpp b/indra/llcorehttp/_httpoperation.cpp
index d966efd12b..b5c58013d4 100644
--- a/indra/llcorehttp/_httpoperation.cpp
+++ b/indra/llcorehttp/_httpoperation.cpp
@@ -47,7 +47,6 @@ namespace LLCore
HttpOperation::HttpOperation()
: LLCoreInt::RefCounted(true),
mReplyQueue(NULL),
- mLibraryHandler(NULL),
mUserHandler(NULL),
mReqPolicy(HttpRequest::DEFAULT_POLICY_ID),
mReqPriority(0U)
@@ -57,13 +56,12 @@ HttpOperation::HttpOperation()
HttpOperation::~HttpOperation()
{
- setHandlers(NULL, NULL, NULL);
+ setReplyPath(NULL, NULL);
}
-void HttpOperation::setHandlers(HttpReplyQueue * reply_queue,
- HttpHandler * lib_handler,
- HttpHandler * user_handler)
+void HttpOperation::setReplyPath(HttpReplyQueue * reply_queue,
+ HttpHandler * user_handler)
{
if (reply_queue != mReplyQueue)
{
@@ -81,9 +79,6 @@ void HttpOperation::setHandlers(HttpReplyQueue * reply_queue,
}
// Not refcounted
- mLibraryHandler = lib_handler;
-
- // Not refcounted
mUserHandler = user_handler;
}
@@ -121,11 +116,12 @@ void HttpOperation::stageFromActive(HttpService *)
void HttpOperation::visitNotifier(HttpRequest *)
{
- if (mLibraryHandler)
+ if (mUserHandler)
{
HttpResponse * response = new HttpResponse();
- mLibraryHandler->onCompleted(static_cast<HttpHandle>(this), response);
+ response->setStatus(mStatus);
+ mUserHandler->onCompleted(static_cast<HttpHandle>(this), response);
response->release();
}
@@ -142,7 +138,7 @@ HttpStatus HttpOperation::cancel()
void HttpOperation::addAsReply()
{
- if (mReplyQueue && mLibraryHandler)
+ if (mReplyQueue)
{
addRef();
mReplyQueue->addOp(this);