Commit 3da5e8e7 authored by Dominik Charousset's avatar Dominik Charousset

Use strong ownership for SSL sessions

parent 2b67963a
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
#ifndef CAF_OPENSSL_SESSION_HPP #ifndef CAF_OPENSSL_SESSION_HPP
#define CAF_OPENSSL_SESSION_HPP #define CAF_OPENSSL_SESSION_HPP
#include <memory>
#include "caf/config.hpp" #include "caf/config.hpp"
CAF_PUSH_WARNINGS CAF_PUSH_WARNINGS
...@@ -38,7 +40,7 @@ using native_socket = io::network::native_socket; ...@@ -38,7 +40,7 @@ using native_socket = io::network::native_socket;
using rw_state = io::network::rw_state; using rw_state = io::network::rw_state;
class session : public ref_counted { class session {
public: public:
session(actor_system& sys); session(actor_system& sys);
~session(); ~session();
...@@ -68,7 +70,7 @@ private: ...@@ -68,7 +70,7 @@ private:
}; };
/// @relates session /// @relates session
using session_ptr = intrusive_ptr<session>; using session_ptr = std::unique_ptr<session>;
/// @relates session /// @relates session
session_ptr make_session(actor_system& sys, native_socket fd, session_ptr make_session(actor_system& sys, native_socket fd,
......
...@@ -50,7 +50,7 @@ using native_socket = io::network::native_socket; ...@@ -50,7 +50,7 @@ using native_socket = io::network::native_socket;
using default_mpx = io::network::default_multiplexer; using default_mpx = io::network::default_multiplexer;
struct ssl_policy { struct ssl_policy {
ssl_policy(intrusive_ptr<session> session) : session_(std::move(session)) { ssl_policy(session_ptr session) : session_(std::move(session)) {
// nop // nop
} }
...@@ -81,7 +81,7 @@ struct ssl_policy { ...@@ -81,7 +81,7 @@ struct ssl_policy {
} }
private: private:
intrusive_ptr<session> session_; session_ptr session_;
}; };
class scribe_impl : public io::scribe { class scribe_impl : public io::scribe {
......
...@@ -253,7 +253,7 @@ bool session::handle_ssl_result(int ret) { ...@@ -253,7 +253,7 @@ bool session::handle_ssl_result(int ret) {
session_ptr make_session(actor_system& sys, native_socket fd, session_ptr make_session(actor_system& sys, native_socket fd,
bool from_accepted_socket) { bool from_accepted_socket) {
auto ptr = make_counted<session>(sys); session_ptr ptr{new session(sys)};
if (!ptr->init()) if (!ptr->init())
return nullptr; return nullptr;
if (from_accepted_socket) { if (from_accepted_socket) {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment