5 #ifndef SRC_IO_SSL_SESSION_H_
6 #define SRC_IO_SSL_SESSION_H_
20 typedef boost::asio::ssl::stream<boost::asio::ip::tcp::socket>
SslSocket;
24 bool async_read_ready =
true);
41 std::scoped_lock lock(
mutex_);
50 std::scoped_lock lock(
mutex_);
55 std::scoped_lock lock(
mutex_);
70 size_t ReadSome(boost::asio::mutable_buffer buffer,
71 boost::system::error_code *error);
72 void AsyncWrite(
const uint8_t *data, std::size_t size);
83 std::scoped_lock lock(
mutex_);
88 std::scoped_lock lock(
mutex_);
void SetSslHandShakeSuccess()
static bool IsSocketErrorHard(const boost::system::error_code &ec)
size_t ReadSome(boost::asio::mutable_buffer buffer, boost::system::error_code *error)
bool IsSslHandShakeDelayed()
virtual Socket * socket() const
boost::asio::ssl::stream< boost::asio::ip::tcp::socket > SslSocket
void SetSslHandShakeFailure()
virtual void AsyncReadSome()
bool IsSslHandShakeInProgress()
void AsyncWrite(const uint8_t *data, std::size_t size)
SslSession(SslServer *server, SslSocket *socket, bool async_read_ready=true)
DISALLOW_COPY_AND_ASSIGN(SslSession)
bool ssl_handshake_success_
static void SslHandShakeCallback(SslHandShakeCallbackHandler cb, SslSessionPtr, const boost::system::error_code &error)
size_t ssl_last_read_len_
virtual Task * CreateReaderTask(boost::asio::mutable_buffer, size_t)
void SetSslHandShakeInProgress(bool state)
boost::scoped_ptr< SslSocket > ssl_socket_
bool ssl_handshake_delayed_
bool IsSslHandShakeSuccess()
virtual size_t GetReadBufferSize() const
void TriggerSslHandShake(SslHandShakeCallbackHandler)
bool IsSslHandShakeSuccessLocked()
static void TriggerSslHandShakeInternal(SslSessionPtr ptr, SslHandShakeCallbackHandler cb)
bool ssl_handshake_in_progress_
Task is a class to describe a computational task within OpenSDN control plane applications....
boost::asio::ip::tcp::socket Socket
boost::intrusive_ptr< SslSession > SslSessionPtr
boost::function< void(SslSessionPtr, const boost::system::error_code &error)> SslHandShakeCallbackHandler