eug*_*ene 3 openssl nonblocking handshake
我正在阅读openssl编程教程.
我不能让服务器应用程序在单个连接的任何操作上被阻止,
因此我将使用非块套接字.
看起来,ssl握手发生在ssl_accept和ssl_connect,
这可能被阻止,我必须在ssl_accept调用之前将套接字设置为非阻塞.
教程文档说我需要在SSL_read上处理SSL_ERROR_WANT_WRITE(当然还有SSL_ERROR_WANT_READ),因为SSL rehandshaking可以随时进行.
SSL_write上的SSL_ERROR_WANT_READ也是出于同样的原因.
来自doc,
如果我们尝试重新握手,我们会得到一个WANT_WRITE,并且在重新握手期间阻止写入.
我们需要等待套接字可写,但重新启动读取
我对"重新"握手感到困惑.
我不打算保存ssl状态并重用它(这称为会话恢复?)在第一次握手之后,我不必处理同一连接的握手.
当我不打算使用会话恢复时,我想知道我是否还需要担心SSL_read上的WANT_WRITE,反之亦然.
谢谢
在连接期间的任何一点都可以由任何一方触发重新整形.它与会话恢复没有任何直接关系.
所以,是的,如果你想你的应用程序是可靠的,你应该准备同时处理SSL_WANT_WRITE和SSL_WANT_READ是否正在读取或写入不管.
| 归档时间: |
|
| 查看次数: |
1466 次 |
| 最近记录: |