summaryrefslogtreecommitdiff
path: root/indra/llcorehttp/_httppolicyglobal.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/_httppolicyglobal.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/_httppolicyglobal.cpp')
-rw-r--r--indra/llcorehttp/_httppolicyglobal.cpp38
1 files changed, 26 insertions, 12 deletions
diff --git a/indra/llcorehttp/_httppolicyglobal.cpp b/indra/llcorehttp/_httppolicyglobal.cpp
index 877b85896f..d95d73cfba 100644
--- a/indra/llcorehttp/_httppolicyglobal.cpp
+++ b/indra/llcorehttp/_httppolicyglobal.cpp
@@ -32,7 +32,7 @@ namespace LLCore
HttpPolicyGlobal::HttpPolicyGlobal()
- : mValidMask(0UL),
+ : mSetMask(0UL),
mConnectionLimit(32L)
{}
@@ -41,6 +41,20 @@ HttpPolicyGlobal::~HttpPolicyGlobal()
{}
+HttpPolicyGlobal & HttpPolicyGlobal::operator=(const HttpPolicyGlobal & other)
+{
+ if (this != &other)
+ {
+ mSetMask = other.mSetMask;
+ mConnectionLimit = other.mConnectionLimit;
+ mCAPath = other.mCAPath;
+ mCAFile = other.mCAFile;
+ mHttpProxy = other.mHttpProxy;
+ }
+ return *this;
+}
+
+
HttpStatus HttpPolicyGlobal::set(HttpRequest::EGlobalPolicy opt, long value)
{
switch (opt)
@@ -53,7 +67,7 @@ HttpStatus HttpPolicyGlobal::set(HttpRequest::EGlobalPolicy opt, long value)
return HttpStatus(HttpStatus::LLCORE, HE_INVALID_ARG);
}
- mValidMask |= 1UL << int(opt);
+ mSetMask |= 1UL << int(opt);
return HttpStatus();
}
@@ -78,7 +92,7 @@ HttpStatus HttpPolicyGlobal::set(HttpRequest::EGlobalPolicy opt, const std::stri
return HttpStatus(HttpStatus::LLCORE, HE_INVALID_ARG);
}
- mValidMask |= 1UL << int(opt);
+ mSetMask |= 1UL << int(opt);
return HttpStatus();
}
@@ -90,7 +104,7 @@ HttpStatus HttpPolicyGlobal::get(HttpRequest::EGlobalPolicy opt, long & value)
switch (opt)
{
case HttpRequest::GP_CONNECTION_LIMIT:
- if (! (mValidMask & (1UL << int(opt))))
+ if (! (mSetMask & (1UL << int(opt))))
return not_set;
value = mConnectionLimit;
break;
@@ -103,28 +117,28 @@ HttpStatus HttpPolicyGlobal::get(HttpRequest::EGlobalPolicy opt, long & value)
}
-HttpStatus HttpPolicyGlobal::get(HttpRequest::EGlobalPolicy opt, std::string & value)
+HttpStatus HttpPolicyGlobal::get(HttpRequest::EGlobalPolicy opt, const std::string *& value)
{
static const HttpStatus not_set(HttpStatus::LLCORE, HE_OPT_NOT_SET);
-
+
switch (opt)
{
case HttpRequest::GP_CA_PATH:
- if (! (mValidMask & (1UL << int(opt))))
+ if (! (mSetMask & (1UL << int(opt))))
return not_set;
- value = mCAPath;
+ value = &mCAPath;
break;
case HttpRequest::GP_CA_FILE:
- if (! (mValidMask & (1UL << int(opt))))
+ if (! (mSetMask & (1UL << int(opt))))
return not_set;
- value = mCAFile;
+ value = &mCAFile;
break;
case HttpRequest::GP_HTTP_PROXY:
- if (! (mValidMask & (1UL << int(opt))))
+ if (! (mSetMask & (1UL << int(opt))))
return not_set;
- value = mHttpProxy;
+ value = &mHttpProxy;
break;
default: