2013编译error等级设置_error:00000005:lib(0):func(0):DH lib遇到过吗?

(点击上方公众号,可快速关注)

SSL_acceptfailed 返回值 return 0 SSL_get_error return 5(SSL_ERROR_SYSCALL)。

SSL_read有时也这样

考虑了很多情况:

1.openssl的多线程问题(排除)

2.创建线程时的初始化参数问题pthread_attr_t(排除)

3.tcpdump/tethereal抓包分析发现密钥交换正常

4.还下载了openssl的源代码编译了debug版进行跟踪(代码太深,最后放弃了,还好放弃了,要不然现在还在断点中单步那)

天啊!,这是什么问题啊,经过n天并多个兄弟一起排查,都没发现问题,最后被逼无奈先写了简化版的测试程序,测试通过。看样还是原来的网络框架有猫腻,上最小代码法(就是把无关的代码全部删了)测试通过。一点一点恢复,终于在一个文件中发现了问题,原来由于某些项没有设置导致网络框架调用了shutdown(fd, SHUT_RD), 你妹啊,把socket的读关了我还交互个毛啊。

总结教训如下:

1.以后再碰到openssl莫名其妙的报错看看是不是socket的RD或WR被关掉了。

2.不能太相信tcpdump/tethereal的抓包结果,关掉RD是不会发FIN的。

3.再碰到此类无头绪的问题,尽快写测试代码,死盯着问题代码是发现不了问题的。

4.加密套件的选择是否支持。

看完本文有收获?请转发分享更多人

因为分享是一种美德

5762d8f9563ccd7e30540ec290cf73fb.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值