次のようなシナリオがあるとします。
- 複数の SSL/TLS レコードが 1 つのソケットに到着しました
- これらのレコードは、一度に 1 つずつ解析されます
SSL_read()
(およびそれらを保持するのに十分な大きさのバッファー)。 - SSL レイヤーでバッファリングされた最終レコードを解析する前に、無効なアプリケーション データを検出し、残りの受信データを解析せずに接続を閉じたい
SSL_shutdown()
まだ readを呼び出していないソケット上の残りの SSL 読み取りデータを破棄しますか、それとも、処理が終わるまでSSL_read()
常に最初に呼び出し続ける必要がありますか? ) そして、?を呼び出します。SSL_read()
SSL_ERROR_WANT_READ
SSL_shutdown()
私が懸念しているのは、(少なくともマニュアルページによると)SSL_shutdown()
あまりにも譲歩できることですSSL_ERROR_WANT_READ
が、何らかの理由でソケットに未読のデータがまだある場合、epoll_wait()
.