【发布时间】:2014-04-28 07:57:09
【问题描述】:
我正在尝试编写一个 openssl 服务器,但 SSL_Accept 失败并出现错误:FFFFFFFF:lib(255):func(4095):reason(4095)。这个错误代码是什么意思?如何获取openssl错误码的描述?
【问题讨论】:
我正在尝试编写一个 openssl 服务器,但 SSL_Accept 失败并出现错误:FFFFFFFF:lib(255):func(4095):reason(4095)。这个错误代码是什么意思?如何获取openssl错误码的描述?
【问题讨论】:
并且 SSL_Accept 失败并出现错误:FFFFFFFF
0xFFFFFFFF 为 -1。接下来你应该打电话给SSL_get_error。来自SSL_accept(3):
如果底层 BIO 被阻塞,SSL_accept() 将只返回一次 握手已完成或发生错误,SGC 除外 (服务器门控密码术)。对于 SGC,SSL_accept() 可能返回 -1, 但 SSL_get_error() 将产生 SSL_ERROR_WANT_READ/WRITE 和 应该再次调用 SSL_accept()。
如果底层 BIO 是非阻塞的,SSL_accept() 也会返回 当底层 BIO 不能满足 SSL_accept() 的需要时 继续握手,返回值-1表示问题。 在这种情况下,调用 SSL_get_error() 并返回值为 SSL_accept() 将产生 SSL_ERROR_WANT_READ 或 SSL_ERROR_WANT_WRITE。 然后调用过程必须在适当的情况下重复调用 满足 SSL_accept() 需要的操作。
【讨论】: