summaryrefslogtreecommitdiffstats
path: root/src/Net/ClientConnection.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/Net/ClientConnection.h')
-rw-r--r--src/Net/ClientConnection.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/Net/ClientConnection.h b/src/Net/ClientConnection.h
index d29d6ae..64203d7 100644
--- a/src/Net/ClientConnection.h
+++ b/src/Net/ClientConnection.h
@@ -35,9 +35,18 @@ class MAD_NET_EXPORT ClientConnection : public Connection {
private:
void handleConnect(const boost::system::error_code& error);
+ ClientConnection(Core::Application *application, boost::shared_ptr<boost::asio::ssl::context> context) : Connection(application, context) {}
+
public:
- ClientConnection(Core::Application *application) : Connection(application) {
- context.set_verify_mode(boost::asio::ssl::context::verify_none);
+ static boost::shared_ptr<ClientConnection> create(Core::Application *application) {
+ boost::shared_ptr<boost::asio::ssl::context> context(new boost::asio::ssl::context(application->getIOService(), boost::asio::ssl::context::sslv23));
+ context->set_verify_mode(boost::asio::ssl::context::verify_none);
+
+ boost::shared_ptr<ClientConnection> connection(new ClientConnection(application, context));
+
+ connection->thisPtr = connection;
+
+ return connection;
}
void connect(const boost::asio::ip::tcp::endpoint &address) throw(Core::Exception);