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/HTTPConnectProxiedConnection.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/HTTPConnectProxiedConnection.h')
-rw-r--r--Swiften/Network/HTTPConnectProxiedConnection.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/Swiften/Network/HTTPConnectProxiedConnection.h b/Swiften/Network/HTTPConnectProxiedConnection.h
index 5b28242..7d83863 100644
--- a/Swiften/Network/HTTPConnectProxiedConnection.h
+++ b/Swiften/Network/HTTPConnectProxiedConnection.h
@@ -5,7 +5,7 @@
*/
/*
- * Copyright (c) 2011-2012 Isode Limited.
+ * Copyright (c) 2011-2015 Isode Limited.
* All rights reserved.
* See the COPYING file for more information.
*/
@@ -13,6 +13,8 @@
#pragma once
+#include <boost/shared_ptr.hpp>
+
#include <Swiften/Base/API.h>
#include <Swiften/Network/ProxiedConnection.h>
@@ -21,6 +23,7 @@ namespace Swift {
class ConnectionFactory;
class EventLoop;
class TimerFactory;
+ class HTTPTrafficFilter;
class SWIFTEN_API HTTPConnectProxiedConnection : public ProxiedConnection {
public:
@@ -30,14 +33,20 @@ namespace Swift {
return ref(new HTTPConnectProxiedConnection(resolver, connectionFactory, timerFactory, proxyHost, proxyPort, authID, authPassword));
}
+ void setHTTPTrafficFilter(boost::shared_ptr<HTTPTrafficFilter> trafficFilter);
+
private:
HTTPConnectProxiedConnection(DomainNameResolver* resolver, ConnectionFactory* connectionFactory, TimerFactory* timerFactory, const std::string& proxyHost, int proxyPort, const SafeString& authID, const SafeString& authPassword);
virtual void initializeProxy();
virtual void handleProxyInitializeData(boost::shared_ptr<SafeByteArray> data);
+ void sendHTTPRequest(const std::string& statusLine, std::vector<std::pair<std::string, std::string> >& headerFields);
+ void parseHTTPHeader(const std::string& data, std::string& statusLine, std::vector<std::pair<std::string, std::string> >& headerFields);
+
private:
SafeByteArray authID_;
SafeByteArray authPassword_;
+ boost::shared_ptr<HTTPTrafficFilter> trafficFilter_;
};
}