SSL_accept是一個函式,其等待一個TLS / SSL客戶端啟動TLS / SSL握手,類似於socket中的accept。
函式簡介,頭檔案包含,函式功能,函式原型,注釋,函式返回值,
函式簡介
頭檔案包含
<openssl/ssl.h>
函式功能
等待一個TLS / SSL客戶端啟動TLS / SSL握手,類似於socket中的accept。
函式原型
int SSL_accept(SSL *ssl);
注釋
依賴於底層的BIO 的行為的真正的SSL_accept() 。
如果底層BIO 阻塞中,所以SSL_accept()將只返回一次握手已經完成或發生錯誤,除了伺服器網關加密(SGC)。對於SGC,所以SSL_accept()可能會返回-1,但 SSL_get_error()將產生SSL_ERROR_WANT_READ /寫和真正的SSL_accept()應該被再次調用。
如果底層的BIO是非阻塞中,所以SSL_accept()將返回,當底層BIO無法滿足的需求的真正的SSL_accept()繼續握手,表示問題的返回值-1。在這種情況下,SSL_get_error()調用的返回值, 所以SSL_accept()將產生SSL_ERROR_WANT_READ,或 SSL_ERROR_WANT_WRITE。然後調用進程必須採取適當的行動,以滿足需求的真正的SSL_accept()後,重複調用的操作依賴於底層的BIO。當使用非阻塞套接字,沒有什麼是必須要做的,但選擇()可以用來檢查要求的條件。
函式返回值
返回值
下面的返回值可能會發生:
1TLS / SSL握手成功完成,TLS / SSL連線已經建立。
0TLS / SSL握手沒有成功,但被關閉,控制和TLS / SSL協定的規格。請致電 SSL_get_error()的返回值,RET,找出原因。
<0TLS / SSL握手沒有成功,因為一個致命的錯誤發生在協定層或連線發生故障。可根據SSL_get_error()的返回值,RET ,找出原因。