diff options
Diffstat (limited to 'src/Net/ClientConnection.h')
-rw-r--r-- | src/Net/ClientConnection.h | 13 |
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); |