From 96b2430d8daaab692068e278f0048fdd47ed3e7e Mon Sep 17 00:00:00 2001
From: Monty Brandenberg <monty@lindenlab.com>
Date: Wed, 6 Jun 2012 14:18:44 -0400
Subject: [PATCH] I am getting really bad about adding files.  For preceding
 commit.

---
 indra/llcorehttp/_httppolicyglobal.cpp | 137 +++++++++++++++++++++++++
 indra/llcorehttp/_httppolicyglobal.h   |  63 ++++++++++++
 2 files changed, 200 insertions(+)
 create mode 100644 indra/llcorehttp/_httppolicyglobal.cpp
 create mode 100644 indra/llcorehttp/_httppolicyglobal.h

diff --git a/indra/llcorehttp/_httppolicyglobal.cpp b/indra/llcorehttp/_httppolicyglobal.cpp
new file mode 100644
index 00000000000..877b85896fb
--- /dev/null
+++ b/indra/llcorehttp/_httppolicyglobal.cpp
@@ -0,0 +1,137 @@
+/**
+ * @file _httppolicyglobal.cpp
+ * @brief Definitions for internal class defining global policy option.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#include "_httppolicyglobal.h"
+
+
+namespace LLCore
+{
+
+
+HttpPolicyGlobal::HttpPolicyGlobal()
+	: mValidMask(0UL),
+	  mConnectionLimit(32L)
+{}
+
+
+HttpPolicyGlobal::~HttpPolicyGlobal()
+{}
+
+
+HttpStatus HttpPolicyGlobal::set(HttpRequest::EGlobalPolicy opt, long value)
+{
+	switch (opt)
+	{
+	case HttpRequest::GP_CONNECTION_LIMIT:
+		mConnectionLimit = value;
+		break;
+
+	default:
+		return HttpStatus(HttpStatus::LLCORE, HE_INVALID_ARG);
+	}
+
+	mValidMask |= 1UL << int(opt);
+	return HttpStatus();
+}
+
+
+HttpStatus HttpPolicyGlobal::set(HttpRequest::EGlobalPolicy opt, const std::string & value)
+{
+	switch (opt)
+	{
+	case HttpRequest::GP_CA_PATH:
+		mCAPath = value;
+		break;
+
+	case HttpRequest::GP_CA_FILE:
+		mCAFile = value;
+		break;
+
+	case HttpRequest::GP_HTTP_PROXY:
+		mCAFile = value;
+		break;
+
+	default:
+		return HttpStatus(HttpStatus::LLCORE, HE_INVALID_ARG);
+	}
+	
+	mValidMask |= 1UL << int(opt);
+	return HttpStatus();
+}
+
+
+HttpStatus HttpPolicyGlobal::get(HttpRequest::EGlobalPolicy opt, long & value)
+{
+	static const HttpStatus not_set(HttpStatus::LLCORE, HE_OPT_NOT_SET);
+	
+	switch (opt)
+	{
+	case HttpRequest::GP_CONNECTION_LIMIT:
+		if (! (mValidMask & (1UL << int(opt))))
+			return not_set;
+		value = mConnectionLimit;
+		break;
+
+	default:
+		return HttpStatus(HttpStatus::LLCORE, HE_INVALID_ARG);
+	}
+
+	return HttpStatus();
+}
+
+
+HttpStatus HttpPolicyGlobal::get(HttpRequest::EGlobalPolicy opt, 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))))
+			return not_set;
+		value = mCAPath;
+		break;
+
+	case HttpRequest::GP_CA_FILE:
+		if (! (mValidMask & (1UL << int(opt))))
+			return not_set;
+		value = mCAFile;
+		break;
+
+	case HttpRequest::GP_HTTP_PROXY:
+		if (! (mValidMask & (1UL << int(opt))))
+			return not_set;
+		value = mHttpProxy;
+		break;
+
+	default:
+		return HttpStatus(HttpStatus::LLCORE, HE_INVALID_ARG);
+	}
+	
+	return HttpStatus();
+}
+
+}  // end namespace LLCore
diff --git a/indra/llcorehttp/_httppolicyglobal.h b/indra/llcorehttp/_httppolicyglobal.h
new file mode 100644
index 00000000000..39ffbcb9bba
--- /dev/null
+++ b/indra/llcorehttp/_httppolicyglobal.h
@@ -0,0 +1,63 @@
+/**
+ * @file _httppolicyglobal.h
+ * @brief Declarations for internal class defining global policy option.
+ *
+ * $LicenseInfo:firstyear=2012&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2012, Linden Research, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation;
+ * version 2.1 of the License only.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+ *
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA  94111  USA
+ * $/LicenseInfo$
+ */
+
+#ifndef	_LLCORE_HTTP_POLICY_GLOBAL_H_
+#define	_LLCORE_HTTP_POLICY_GLOBAL_H_
+
+
+#include "httprequest.h"
+
+
+namespace LLCore
+{
+
+class HttpPolicyGlobal
+{
+public:
+	HttpPolicyGlobal();
+	~HttpPolicyGlobal();
+
+private:
+	HttpPolicyGlobal(const HttpPolicyGlobal &);			// Not defined
+	void operator=(const HttpPolicyGlobal &);			// Not defined
+
+public:
+	HttpStatus set(HttpRequest::EGlobalPolicy opt, long value);
+	HttpStatus set(HttpRequest::EGlobalPolicy opt, const std::string & value);
+	HttpStatus get(HttpRequest::EGlobalPolicy opt, long & value);
+	HttpStatus get(HttpRequest::EGlobalPolicy opt, std::string & value);
+	
+public:
+	unsigned long		mValidMask;
+	long				mConnectionLimit;
+	std::string			mCAPath;
+	std::string			mCAFile;
+	std::string			mHttpProxy;
+};  // end class HttpPolicyGlobal
+
+}  // end namespace LLCore
+
+#endif // _LLCORE_HTTP_POLICY_GLOBAL_H_
-- 
GitLab