MCPcopy Create free account
hub / github.com/F-Stack/f-stack / connTLSRead

Function connTLSRead

app/redis-6.2.6/src/tls.c:776–805  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

774}
775
776static int connTLSRead(connection *conn_, void *buf, size_t buf_len) {
777 tls_connection *conn = (tls_connection *) conn_;
778 int ret;
779 int ssl_err;
780
781 if (conn->c.state != CONN_STATE_CONNECTED) return -1;
782 ERR_clear_error();
783 ret = SSL_read(conn->ssl, buf, buf_len);
784 if (ret <= 0) {
785 WantIOType want = 0;
786 if (!(ssl_err = handleSSLReturnCode(conn, ret, &want))) {
787 if (want == WANT_WRITE) conn->flags |= TLS_CONN_FLAG_READ_WANT_WRITE;
788 updateSSLEvent(conn);
789
790 errno = EAGAIN;
791 return -1;
792 } else {
793 if (ssl_err == SSL_ERROR_ZERO_RETURN ||
794 ((ssl_err == SSL_ERROR_SYSCALL) && !errno)) {
795 conn->c.state = CONN_STATE_CLOSED;
796 return 0;
797 } else {
798 conn->c.state = CONN_STATE_ERROR;
799 return -1;
800 }
801 }
802 }
803
804 return ret;
805}
806
807static const char *connTLSGetLastError(connection *conn_) {
808 tls_connection *conn = (tls_connection *) conn_;

Callers

nothing calls this directly

Calls 2

handleSSLReturnCodeFunction · 0.85
updateSSLEventFunction · 0.85

Tested by

no test coverage detected