Я читаю учебник по программированию openssl .
Я не могу разрешить блокировку серверного приложения для какой-либо операции для одного соединения,
, поэтому я будуиспользуйте неблочные розетки.
Поскольку кажется, что ssl handshaking происходит в ssl_accept и ssl_connect,
, и это может быть заблокировано, мне придется установить сокет в неблокированный перед вызовом ssl_accept.
В учебном документе говорится, что мне нужно обработать SSL_ERROR_WANT_WRITE (плюс, конечно, SSL_ERROR_WANT_READ) для SSL_read, потому что повторный обмен SSL может произойти в любое время.
И SSL_ERROR_WANT_READ для SSL_write по той же причине.
Из документа
Мы получим WANT_WRITE, если мы пытаемся выполнить повторный обмен, и мы блокируем запись во время этого повторного обмена.
Нам нужно подождатьна сокете для записи, но перезапустите чтение, когда оно
Я сбит с толку в части "повторного" рукопожатия.
Я не планирую сохранять состояние ssl и повторно использовать его(это называется возобновлением сеанса?) После первого подтверждения связи мне не придется иметь дело с подтверждением связи для того же соединения.
Интересно, мне все еще нужно беспокоиться о WANT_WRITE в SSL_read и наоборот, когда я не собираюсь использовать возобновление сеанса.
Спасибо