1

次のようなシナリオがあるとします。

  • 複数の SSL/TLS レコードが 1 つのソケットに到着しました
  • これらのレコードは、一度に 1 つずつ解析されますSSL_read()(およびそれらを保持するのに十分な大きさのバッファー)。
  • SSL レイヤーでバッファリングされた最終レコードを解析する前に、無効なアプリケーション データを検出し、残りの受信データを解析せずに接続を閉じたい

SSL_shutdown()まだ readを呼び出していないソケット上の残りの SSL 読み取りデータを破棄しますか、それとも、処理が終わるまでSSL_read()常に最初に呼び出し続ける必要がありますか? ) そして、?を呼び出します。SSL_read()SSL_ERROR_WANT_READSSL_shutdown()

私が懸念しているのは、(少なくともマニュアルページによると)SSL_shutdown()あまりにも譲歩できることですSSL_ERROR_WANT_READが、何らかの理由でソケットに未読のデータがまだある場合、epoll_wait().

4

1 に答える 1