summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Markmann <tm@ayena.de>2015-03-16 11:56:22 (GMT)
committerTobias Markmann <tm@ayena.de>2015-03-16 11:56:22 (GMT)
commit1f072d6858f98e2717f50cffca4acb17e663267d (patch)
tree6f97e65f014b05bd18398da58e262d677eecd286 /Swiften/Network/HTTPTrafficFilter.h
parentcb9f7ecff59034e9678b1aca22b608b6e2522e1a (diff)
downloadswift-1f072d6858f98e2717f50cffca4acb17e663267d.zip
swift-1f072d6858f98e2717f50cffca4acb17e663267d.tar.bz2
Add ability to modify HTTP CONNECT proxy initialization
This patch adds HTTPTrafficFilter and integrates it into HTTPConnectProxiedConnection. This allows the HTTP CONNECT proxy initialization process to be customized. Test-Information: Added a unit test that verifies the new functionality. Change-Id: I0b93c319fb205487b8be65717276cd0dd38851a3
Diffstat (limited to 'Swiften/Network/HTTPTrafficFilter.h')
-rw-r--r--Swiften/Network/HTTPTrafficFilter.h31
1 files changed, 31 insertions, 0 deletions
diff --git a/Swiften/Network/HTTPTrafficFilter.h b/Swiften/Network/HTTPTrafficFilter.h
new file mode 100644
index 0000000..da96c96
--- /dev/null
+++ b/Swiften/Network/HTTPTrafficFilter.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2015 Isode Limited.
+ * All rights reserved.
+ * See the COPYING file for more information.
+ */
+
+#pragma once
+
+#include <vector>
+#include <string>
+#include <utility>
+
+#include <boost/optional.hpp>
+
+#include <Swiften/Base/API.h>
+
+namespace Swift {
+
+class SWIFTEN_API HTTPTrafficFilter {
+ public:
+ virtual ~HTTPTrafficFilter();
+ /**
+ * @brief This method is called by the HTTPConnectPRoxiedConnection on every incoming HTTP response.
+ * It can be used to insert additional HTTP requests into the HTTP CONNECT proxy initalization process.
+ * @return A vector of HTTP header fields to use in a new request. If an empty vector is returned,
+ * no new request will be send and the normal proxy logic continues.
+ */
+ virtual std::vector<std::pair<std::string, std::string> > filterHTTPResponseHeader(const std::vector<std::pair<std::string, std::string> >& /* responseHeader */) = 0;
+};
+
+}