给定一个场景:
- 多个 SSL/TLS 记录已到达单个套接字
- 这些记录一次解析一个
SSL_read()
(以及足够大的缓冲区来保存它们)。 - 在解析在 SSL 层缓冲的最终记录之前,我检测到无效的应用程序数据并希望关闭连接而不解析剩余的传入数据
将SSL_shutdown()
丢弃套接字上我尚未调用SSL_read()
read 的任何剩余 SSL 读取数据,还是我总是需要继续SSL_read()
先调用直到它产生SSL_ERROR_WANT_READ
(这会浪费 CPU 周期来提取我什至不再关心的数据) 然后调用SSL_shutdown()
?
我担心的是它SSL_shutdown()
也可以产生SSL_ERROR_WANT_READ
(至少根据手册页),但是如果由于某种原因在套接字上仍有未读数据,我不一定会因为我使用epoll_wait()
.