Как убрать плохое соединение OpenSSL - PullRequest
3 голосов
/ 31 августа 2010

Если вызов SSL_accept завершится неудачно, я просто хочу выручить.

В настоящее время я вызываю SSL_shutdown, а затем SSL_free, но с момента реализации этого у двух клиентов произошли сбои в OpenSSL (при вызове SSL_accept позднее), поэтому я предполагаю, что это не лучший способ. убирать.

В документах говорится, что SSL_shutdown используется для правильной очистки, и, возможно, его придется вызывать дважды (хотя, если SSL_accept не удался, я бы не подумал, что это будет так). SSL_clear - это еще один вариант, но он больше похож на сброс соединения.

SSL_free уменьшает счетчик ссылок и удаляет соединение, если счетчик ссылок достигает 0. Я знаю, что в моем коде нет ссылок, но «сессия» может?

Есть ли определенный способ для полного закрытия / выключения / освобождения объекта SSL с OpenSSL?

1 Ответ

3 голосов
/ 01 сентября 2010

После того как вы вызвали SSL_free() для объекта SSL, вы не должны использовать его снова.Необходимо убедиться, что новый SSL создан с SSL_new() для последующего SSL_accept().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...