mirror of
https://github.com/QuasarApp/openssl.git
synced 2025-04-29 11:14:36 +00:00
OSSL_HTTP_REQ_CTX_transfer(): improve distinction of send error vs. receive error
Reviewed-by: Tomas Mraz <tomas@openssl.org> (Merged from https://github.com/openssl/openssl/pull/14630)
This commit is contained in:
parent
2318379119
commit
1e6174b1b5
@ -746,7 +746,6 @@ static ASN1_VALUE *BIO_mem_d2i(BIO *mem, const ASN1_ITEM *it)
|
|||||||
|
|
||||||
static BIO *ossl_http_req_ctx_transfer(OSSL_HTTP_REQ_CTX *rctx)
|
static BIO *ossl_http_req_ctx_transfer(OSSL_HTTP_REQ_CTX *rctx)
|
||||||
{
|
{
|
||||||
int sending = 1;
|
|
||||||
int rv;
|
int rv;
|
||||||
|
|
||||||
if (rctx == NULL) {
|
if (rctx == NULL) {
|
||||||
@ -759,7 +758,6 @@ static BIO *ossl_http_req_ctx_transfer(OSSL_HTTP_REQ_CTX *rctx)
|
|||||||
if (rv != -1)
|
if (rv != -1)
|
||||||
break;
|
break;
|
||||||
/* BIO_should_retry was true */
|
/* BIO_should_retry was true */
|
||||||
sending = 0;
|
|
||||||
/* will not actually wait if rctx->max_time == 0 */
|
/* will not actually wait if rctx->max_time == 0 */
|
||||||
if (BIO_wait(rctx->rbio, rctx->max_time, 100 /* milliseconds */) <= 0)
|
if (BIO_wait(rctx->rbio, rctx->max_time, 100 /* milliseconds */) <= 0)
|
||||||
return NULL;
|
return NULL;
|
||||||
@ -767,7 +765,7 @@ static BIO *ossl_http_req_ctx_transfer(OSSL_HTTP_REQ_CTX *rctx)
|
|||||||
|
|
||||||
if (rv == 0) {
|
if (rv == 0) {
|
||||||
if (rctx->redirection_url == NULL) { /* an error occurred */
|
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);
|
ERR_raise(ERR_LIB_HTTP, HTTP_R_ERROR_SENDING);
|
||||||
else
|
else
|
||||||
ERR_raise(ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING);
|
ERR_raise(ERR_LIB_HTTP, HTTP_R_ERROR_RECEIVING);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user