Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/14630)
static BIO *ossl_http_req_ctx_transfer(OSSL_HTTP_REQ_CTX *rctx)
{
- int sending = 1;
int rv;
if (rctx == NULL) {
if (rv != -1)
break;
/* BIO_should_retry was true */
- sending = 0;
/* will not actually wait if rctx->max_time == 0 */
if (BIO_wait(rctx->rbio, rctx->max_time, 100 /* milliseconds */) <= 0)
return NULL;
if (rv == 0) {
if (rctx->redirection_url == NULL) { /* an error occurred */
- if (sending && (rctx->state & OHS_NOREAD) != 0)
+ if (rctx->len_to_send > 0)
ERR_raise(ERR_LIB_HTTP, HTTP_R_ERROR_SENDING);
else
ERR_raise(ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING);