Index: /pjproject/trunk/pjlib/src/pj/ssl_sock_ossl.c =================================================================== --- a/pjlib/src/pj/ssl_sock_ossl.c (revision 5564) +++ b/pjlib/src/pj/ssl_sock_ossl.c (revision 5565) @@ -145,5 +145,6 @@ SSL_STATE_NULL, SSL_STATE_HANDSHAKING, - SSL_STATE_ESTABLISHED + SSL_STATE_ESTABLISHED, + SSL_STATE_ERROR }; @@ -1907,4 +1908,8 @@ buf->len += size_; + if (status != PJ_SUCCESS) { + ssock->ssl_state = SSL_STATE_ERROR; + } + ret = (*ssock->param.cb.on_data_read)(ssock, buf->data, buf->len, status, @@ -2658,5 +2663,9 @@ /* Current cipher */ cipher = SSL_get_current_cipher(ssock->ossl_ssl); - info->cipher = (SSL_CIPHER_get_id(cipher) & 0x00FFFFFF); + if (cipher) { + info->cipher = (SSL_CIPHER_get_id(cipher) & 0x00FFFFFF); + } else { + info->cipher = PJ_TLS_UNKNOWN_CIPHER; + } /* Remote address */