openssl は、0.9.8m 以降のバージョンで安全な再ネゴシエーションを追加しました。このケースをどのように処理しますか? 非ブロッキングソケットを使用するサーバーで、SSL_acceptが行われたとします。サーバーは、ソケットが読み取り可能になるかどうかを確認します。その場合、クライアントが何らかの要求を送信したためにソケットが読み取り可能になったか、クライアントが接続を再ネゴシエートしたかの 2 つの可能性があります。SSL_MODE_AUTO_RETRY は、非ブロック ソケットについて理解しているため、適用できません。クライアントがリクエストを送信した場合、SSL_Read を呼び出す必要があります。クライアントが再ネゴシエートした場合、SSL_accept を呼び出す必要があります。クライアントが再ネゴシエーションを行ったときに SSL_read を呼び出すと、SSL_ERROR_SSL が返されます。では、SSL_accept または SSL_read を実行する必要があるかどうかを判断するにはどうすればよいでしょうか。SSL_read を再度呼び出すと、同じエラーが返されます。
ご意見ありがとうございます