Правильный способ завершения SSL-потокаC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Правильный способ завершения SSL-потока

Сообщение Anonymous »

У меня есть boost::asio::ssl::stream, который используется для чтения и записи данных через безопасное соединение.
В какой-то момент мне нужно уничтожить объект boost::asio::ssl::stream. Должен ли я отменить активные асинхронные операции перед вызовом async_shutdown? Другими словами, какой из следующих вариантов правильный?
void close()
{
// m_stream stream is boost::asio::ssl::stream

boost::system::error_code ec;
m_stream.next_layer().cancel(ec);
if (ec)
{
return;
}

m_stream.async_shutdown([this](const boost::system::error_code& ec)
{
if (ec)
{
return;
}

boost::system::error_code ignored_ec;
m_stream.lowest_layer().close(ignored_ec);
});
}

Или
void close()
{
m_stream.async_shutdown([this](const boost::system::error_code& ec)
{
if (ec)
{
return;
}

boost::system::error_code ignored_ec;
m_stream.lowest_layer().close(ignored_ec);
});
}


Подробнее здесь: https://stackoverflow.com/questions/796 ... ssl-stream
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»