为什么我在尝试SSL_write时遇到“错误:1409F07F:SSL例程:SSL3_WRITE_PENDING:写入重试错误”错误?

时间:2010-06-08 12:25:50

标签: openssl

尝试SSL_write时出现以下错误:

  

错误:1409F07F:SSL例程:SSL3_WRITE_PENDING:错误的写入重试

1 个答案:

答案 0 :(得分:22)

原因很简单:当SSL_Write返回SSL_ERROR_WANT_WRITE或SSL_ERROR_WANT_READ时,您必须在满足条件后再次使用EXACT相同的参数重复调用SSL_write(在套接字上可读/写)。

使用不同的参数调用它将产生1409F07F错误的写入重试错误。

例如,当ptr = 0xABCDEFGH,size = 4096的SSL_write(ssl,ptr,size)因SSL_ERROR_WANT_READ或SSL_ERROR_WANT_WRITE而失败时,在重试SSL_write调用时,参数ptr和size应该相同。如果ptr是指向与原始调用中相同内容的副本的另一个指针,则它不等效。

但是,可以通过设置SSL_MODE_ENABLE_PARTIAL_WRITE和/或SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER来更改SSL_write的默认行为。


感谢@ShriramV的澄清评论,并将其整合到答案中