我正在嘗試處理SSL錯誤情況,例如,SSL async_handshake()所用的時間太長。 經過一段時間(比如說20秒)我想關閉這個連接(lowest_layer()。close())。 我將帶連接對象的shared_ptr作爲參數傳遞給async_handshake(),所以對象仍然存在,最終調用握手處理程序並且銷燬對象。Boost.Asio SSL ungraceful關閉
但是,我仍然零星的崩潰!看起來像close()之後SSL仍在嘗試讀取或操作讀取緩衝區。
所以,基本問題 - 硬關閉()SSL連接安全嗎?
任何想法?
這對async_handshake案件沒有幫助,至少對我而言。 – PSIAlt 2013-03-07 15:14:02
@PSIAlt添加了一個鏈接到有關Windows平臺的文檔和'cancel()' – 2013-03-07 16:06:12
的限制。謝謝,但我在Linux上遇到與OP相同的麻煩。它很容易重現:設置async_handshake並設置deadline_timer約2-5毫秒。在這個計時器中,我使用'lowest_layer()。close()'和應用程序coredumps在'SSL_connect'內關閉了'ssl :: stream'的底層連接。不知道如何解決這個問題,現在只是增加了計時器 – PSIAlt 2013-03-07 19:41:00