| 205 | } |
| 206 | |
| 207 | static CC_NOINLINE cc_result SSL_GetError(SSLContext* ctx) { |
| 208 | int err; |
| 209 | if (ctx->writeError) return ctx->writeError; |
| 210 | if (ctx->readError) return ctx->readError; |
| 211 | |
| 212 | // TODO session resumption, proper connection closing ?? |
| 213 | err = br_ssl_engine_last_error(&ctx->sc.eng); |
| 214 | if (err == 0 && br_ssl_engine_current_state(&ctx->sc.eng) == BR_SSL_CLOSED) |
| 215 | return SSL_ERR_CONTEXT_DEAD; |
| 216 | |
| 217 | return SSL_ERROR_SHIFT | (err & 0xFFFF); |
| 218 | } |
| 219 | |
| 220 | cc_result SSL_Read(void* ctx_, cc_uint8* data, cc_uint32 count, cc_uint32* read) { |
| 221 | SSLContext* ctx = (SSLContext*)ctx_; |
no outgoing calls
no test coverage detected