Lines Matching refs:rctx

92     OSSL_HTTP_REQ_CTX *rctx;  in OSSL_HTTP_REQ_CTX_new()  local
99 if ((rctx = OPENSSL_zalloc(sizeof(*rctx))) == NULL) in OSSL_HTTP_REQ_CTX_new()
101 rctx->state = OHS_ERROR; in OSSL_HTTP_REQ_CTX_new()
102 rctx->buf_size = buf_size > 0 ? buf_size : OSSL_HTTP_DEFAULT_MAX_LINE_LEN; in OSSL_HTTP_REQ_CTX_new()
103 rctx->buf = OPENSSL_malloc(rctx->buf_size); in OSSL_HTTP_REQ_CTX_new()
104 rctx->wbio = wbio; in OSSL_HTTP_REQ_CTX_new()
105 rctx->rbio = rbio; in OSSL_HTTP_REQ_CTX_new()
106 if (rctx->buf == NULL) { in OSSL_HTTP_REQ_CTX_new()
107 OPENSSL_free(rctx); in OSSL_HTTP_REQ_CTX_new()
110 rctx->max_resp_len = OSSL_HTTP_DEFAULT_MAX_RESP_LEN; in OSSL_HTTP_REQ_CTX_new()
112 return rctx; in OSSL_HTTP_REQ_CTX_new()
115 void OSSL_HTTP_REQ_CTX_free(OSSL_HTTP_REQ_CTX *rctx) in OSSL_HTTP_REQ_CTX_free() argument
117 if (rctx == NULL) in OSSL_HTTP_REQ_CTX_free()
124 if (rctx->free_wbio) in OSSL_HTTP_REQ_CTX_free()
125 BIO_free_all(rctx->wbio); in OSSL_HTTP_REQ_CTX_free()
127 BIO_free(rctx->mem); in OSSL_HTTP_REQ_CTX_free()
128 BIO_free(rctx->req); in OSSL_HTTP_REQ_CTX_free()
129 OPENSSL_free(rctx->buf); in OSSL_HTTP_REQ_CTX_free()
130 OPENSSL_free(rctx->proxy); in OSSL_HTTP_REQ_CTX_free()
131 OPENSSL_free(rctx->server); in OSSL_HTTP_REQ_CTX_free()
132 OPENSSL_free(rctx->port); in OSSL_HTTP_REQ_CTX_free()
133 OPENSSL_free(rctx->expected_ct); in OSSL_HTTP_REQ_CTX_free()
134 OPENSSL_free(rctx); in OSSL_HTTP_REQ_CTX_free()
137 BIO *OSSL_HTTP_REQ_CTX_get0_mem_bio(const OSSL_HTTP_REQ_CTX *rctx) in OSSL_HTTP_REQ_CTX_get0_mem_bio() argument
139 if (rctx == NULL) { in OSSL_HTTP_REQ_CTX_get0_mem_bio()
143 return rctx->mem; in OSSL_HTTP_REQ_CTX_get0_mem_bio()
146 size_t OSSL_HTTP_REQ_CTX_get_resp_len(const OSSL_HTTP_REQ_CTX *rctx) in OSSL_HTTP_REQ_CTX_get_resp_len() argument
148 if (rctx == NULL) { in OSSL_HTTP_REQ_CTX_get_resp_len()
152 return rctx->resp_len; in OSSL_HTTP_REQ_CTX_get_resp_len()
155 void OSSL_HTTP_REQ_CTX_set_max_response_length(OSSL_HTTP_REQ_CTX *rctx, in OSSL_HTTP_REQ_CTX_set_max_response_length() argument
158 if (rctx == NULL) { in OSSL_HTTP_REQ_CTX_set_max_response_length()
162 rctx->max_resp_len = len != 0 ? (size_t)len : OSSL_HTTP_DEFAULT_MAX_RESP_LEN; in OSSL_HTTP_REQ_CTX_set_max_response_length()
169 int OSSL_HTTP_REQ_CTX_set_request_line(OSSL_HTTP_REQ_CTX *rctx, int method_POST, in OSSL_HTTP_REQ_CTX_set_request_line() argument
173 if (rctx == NULL) { in OSSL_HTTP_REQ_CTX_set_request_line()
177 BIO_free(rctx->mem); in OSSL_HTTP_REQ_CTX_set_request_line()
178 if ((rctx->mem = BIO_new(BIO_s_mem())) == NULL) in OSSL_HTTP_REQ_CTX_set_request_line()
181 rctx->method_POST = method_POST != 0; in OSSL_HTTP_REQ_CTX_set_request_line()
182 if (BIO_printf(rctx->mem, "%s ", rctx->method_POST ? "POST" : "GET") <= 0) in OSSL_HTTP_REQ_CTX_set_request_line()
190 if (BIO_printf(rctx->mem, OSSL_HTTP_PREFIX"%s", server) <= 0) in OSSL_HTTP_REQ_CTX_set_request_line()
192 if (port != NULL && BIO_printf(rctx->mem, ":%s", port) <= 0) in OSSL_HTTP_REQ_CTX_set_request_line()
199 if (path[0] != '/' && BIO_printf(rctx->mem, "/") <= 0) in OSSL_HTTP_REQ_CTX_set_request_line()
205 if (BIO_printf(rctx->mem, "%s "HTTP_1_0"\r\n", path) <= 0) in OSSL_HTTP_REQ_CTX_set_request_line()
208 rctx->resp_len = 0; in OSSL_HTTP_REQ_CTX_set_request_line()
209 rctx->state = OHS_ADD_HEADERS; in OSSL_HTTP_REQ_CTX_set_request_line()
213 int OSSL_HTTP_REQ_CTX_add1_header(OSSL_HTTP_REQ_CTX *rctx, in OSSL_HTTP_REQ_CTX_add1_header() argument
216 if (rctx == NULL || name == NULL) { in OSSL_HTTP_REQ_CTX_add1_header()
220 if (rctx->mem == NULL) { in OSSL_HTTP_REQ_CTX_add1_header()
225 if (BIO_puts(rctx->mem, name) <= 0) in OSSL_HTTP_REQ_CTX_add1_header()
228 if (BIO_write(rctx->mem, ": ", 2) != 2) in OSSL_HTTP_REQ_CTX_add1_header()
230 if (BIO_puts(rctx->mem, value) <= 0) in OSSL_HTTP_REQ_CTX_add1_header()
233 return BIO_write(rctx->mem, "\r\n", 2) == 2; in OSSL_HTTP_REQ_CTX_add1_header()
236 int OSSL_HTTP_REQ_CTX_set_expected(OSSL_HTTP_REQ_CTX *rctx, in OSSL_HTTP_REQ_CTX_set_expected() argument
240 if (rctx == NULL) { in OSSL_HTTP_REQ_CTX_set_expected()
245 && rctx->state != OHS_ERROR && rctx->state != OHS_ADD_HEADERS) { in OSSL_HTTP_REQ_CTX_set_expected()
251 OPENSSL_free(rctx->expected_ct); in OSSL_HTTP_REQ_CTX_set_expected()
252 rctx->expected_ct = NULL; in OSSL_HTTP_REQ_CTX_set_expected()
254 && (rctx->expected_ct = OPENSSL_strdup(content_type)) == NULL) in OSSL_HTTP_REQ_CTX_set_expected()
257 rctx->expect_asn1 = asn1; in OSSL_HTTP_REQ_CTX_set_expected()
259 rctx->max_time = timeout > 0 ? time(NULL) + timeout : 0; in OSSL_HTTP_REQ_CTX_set_expected()
261 rctx->max_time = rctx->max_total_time; in OSSL_HTTP_REQ_CTX_set_expected()
262 rctx->keep_alive = keep_alive; in OSSL_HTTP_REQ_CTX_set_expected()
266 static int set1_content(OSSL_HTTP_REQ_CTX *rctx, in set1_content() argument
271 if (rctx == NULL || (req == NULL && content_type != NULL)) { in set1_content()
276 if (rctx->keep_alive != 0 in set1_content()
277 && !OSSL_HTTP_REQ_CTX_add1_header(rctx, "Connection", "keep-alive")) in set1_content()
280 BIO_free(rctx->req); in set1_content()
281 rctx->req = NULL; in set1_content()
284 if (!rctx->method_POST) { in set1_content()
290 && BIO_printf(rctx->mem, "Content-Type: %s\r\n", content_type) <= 0) in set1_content()
295 || BIO_printf(rctx->mem, "Content-Length: %ld\r\n", req_len) > 0) in set1_content()
297 rctx->req = req; in set1_content()
303 int OSSL_HTTP_REQ_CTX_set1_req(OSSL_HTTP_REQ_CTX *rctx, const char *content_type, in OSSL_HTTP_REQ_CTX_set1_req() argument
311 res = res && set1_content(rctx, content_type, mem); in OSSL_HTTP_REQ_CTX_set1_req()
316 static int add1_headers(OSSL_HTTP_REQ_CTX *rctx, in add1_headers() argument
327 if (!OSSL_HTTP_REQ_CTX_add1_header(rctx, hdr->name, hdr->value)) in add1_headers()
331 if (add_host && !OSSL_HTTP_REQ_CTX_add1_header(rctx, "Host", host)) in add1_headers()
344 OSSL_HTTP_REQ_CTX *rctx = OSSL_HTTP_REQ_CTX_new(wbio, rbio, buf_size); in http_req_ctx_new() local
346 if (rctx == NULL) in http_req_ctx_new()
348 rctx->free_wbio = free_wbio; in http_req_ctx_new()
349 rctx->upd_fn = bio_update_fn; in http_req_ctx_new()
350 rctx->upd_arg = arg; in http_req_ctx_new()
351 rctx->use_ssl = use_ssl; in http_req_ctx_new()
353 && (rctx->proxy = OPENSSL_strdup(proxy)) == NULL) in http_req_ctx_new()
356 && (rctx->server = OPENSSL_strdup(server)) == NULL) in http_req_ctx_new()
359 && (rctx->port = OPENSSL_strdup(port)) == NULL) in http_req_ctx_new()
361 rctx->max_total_time = in http_req_ctx_new()
363 return rctx; in http_req_ctx_new()
366 OSSL_HTTP_REQ_CTX_free(rctx); in http_req_ctx_new()
454 static int check_set_resp_len(OSSL_HTTP_REQ_CTX *rctx, size_t len) in check_set_resp_len() argument
456 if (rctx->max_resp_len != 0 && len > rctx->max_resp_len) in check_set_resp_len()
458 "length=%zu, max=%zu", len, rctx->max_resp_len); in check_set_resp_len()
459 if (rctx->resp_len != 0 && rctx->resp_len != len) in check_set_resp_len()
462 len, rctx->resp_len); in check_set_resp_len()
463 rctx->resp_len = len; in check_set_resp_len()
471 int OSSL_HTTP_REQ_CTX_nbio(OSSL_HTTP_REQ_CTX *rctx) in OSSL_HTTP_REQ_CTX_nbio() argument
479 if (rctx == NULL) { in OSSL_HTTP_REQ_CTX_nbio()
483 if (rctx->mem == NULL || rctx->wbio == NULL || rctx->rbio == NULL) { in OSSL_HTTP_REQ_CTX_nbio()
488 rctx->redirection_url = NULL; in OSSL_HTTP_REQ_CTX_nbio()
490 if ((rctx->state & OHS_NOREAD) == 0) { in OSSL_HTTP_REQ_CTX_nbio()
491 if (rctx->expect_asn1) in OSSL_HTTP_REQ_CTX_nbio()
492 n = BIO_read(rctx->rbio, rctx->buf, rctx->buf_size); in OSSL_HTTP_REQ_CTX_nbio()
494 n = BIO_gets(rctx->rbio, (char *)rctx->buf, rctx->buf_size); in OSSL_HTTP_REQ_CTX_nbio()
496 if (BIO_should_retry(rctx->rbio)) in OSSL_HTTP_REQ_CTX_nbio()
503 if (BIO_write(rctx->mem, rctx->buf, n) != n) in OSSL_HTTP_REQ_CTX_nbio()
507 switch (rctx->state) { in OSSL_HTTP_REQ_CTX_nbio()
510 if (BIO_write(rctx->mem, "\r\n", 2) != 2) { in OSSL_HTTP_REQ_CTX_nbio()
511 rctx->state = OHS_ERROR; in OSSL_HTTP_REQ_CTX_nbio()
514 rctx->state = OHS_WRITE_INIT; in OSSL_HTTP_REQ_CTX_nbio()
518 rctx->len_to_send = BIO_get_mem_data(rctx->mem, &rctx->pos); in OSSL_HTTP_REQ_CTX_nbio()
519 rctx->state = OHS_WRITE_HDR; in OSSL_HTTP_REQ_CTX_nbio()
527 if (rctx->len_to_send > 0) { in OSSL_HTTP_REQ_CTX_nbio()
528 i = BIO_write(rctx->wbio, rctx->pos, rctx->len_to_send); in OSSL_HTTP_REQ_CTX_nbio()
530 if (BIO_should_retry(rctx->wbio)) in OSSL_HTTP_REQ_CTX_nbio()
532 rctx->state = OHS_ERROR; in OSSL_HTTP_REQ_CTX_nbio()
535 rctx->pos += i; in OSSL_HTTP_REQ_CTX_nbio()
536 rctx->len_to_send -= i; in OSSL_HTTP_REQ_CTX_nbio()
539 if (rctx->state == OHS_WRITE_HDR) { in OSSL_HTTP_REQ_CTX_nbio()
540 (void)BIO_reset(rctx->mem); in OSSL_HTTP_REQ_CTX_nbio()
541 rctx->state = OHS_WRITE_REQ; in OSSL_HTTP_REQ_CTX_nbio()
543 if (rctx->req != NULL && !BIO_eof(rctx->req)) { in OSSL_HTTP_REQ_CTX_nbio()
544 n = BIO_read(rctx->req, rctx->buf, rctx->buf_size); in OSSL_HTTP_REQ_CTX_nbio()
546 if (BIO_should_retry(rctx->rbio)) in OSSL_HTTP_REQ_CTX_nbio()
551 rctx->pos = rctx->buf; in OSSL_HTTP_REQ_CTX_nbio()
552 rctx->len_to_send = n; in OSSL_HTTP_REQ_CTX_nbio()
555 rctx->state = OHS_FLUSH; in OSSL_HTTP_REQ_CTX_nbio()
560 i = BIO_flush(rctx->wbio); in OSSL_HTTP_REQ_CTX_nbio()
563 rctx->state = OHS_FIRSTLINE; in OSSL_HTTP_REQ_CTX_nbio()
567 if (BIO_should_retry(rctx->wbio)) in OSSL_HTTP_REQ_CTX_nbio()
570 rctx->state = OHS_ERROR; in OSSL_HTTP_REQ_CTX_nbio()
587 n = BIO_get_mem_data(rctx->mem, &p); in OSSL_HTTP_REQ_CTX_nbio()
589 if (n >= rctx->buf_size) { in OSSL_HTTP_REQ_CTX_nbio()
590 rctx->state = OHS_ERROR; in OSSL_HTTP_REQ_CTX_nbio()
595 n = BIO_gets(rctx->mem, (char *)rctx->buf, rctx->buf_size); in OSSL_HTTP_REQ_CTX_nbio()
598 if (BIO_should_retry(rctx->mem)) in OSSL_HTTP_REQ_CTX_nbio()
600 rctx->state = OHS_ERROR; in OSSL_HTTP_REQ_CTX_nbio()
605 if (n == rctx->buf_size) { in OSSL_HTTP_REQ_CTX_nbio()
607 rctx->state = OHS_ERROR; in OSSL_HTTP_REQ_CTX_nbio()
612 if (rctx->state == OHS_FIRSTLINE) { in OSSL_HTTP_REQ_CTX_nbio()
613 switch (parse_http_line1((char *)rctx->buf, &found_keep_alive)) { in OSSL_HTTP_REQ_CTX_nbio()
615 rctx->state = OHS_HEADERS; in OSSL_HTTP_REQ_CTX_nbio()
619 if (!rctx->method_POST) { /* method is GET */ in OSSL_HTTP_REQ_CTX_nbio()
620 rctx->state = OHS_REDIRECT; in OSSL_HTTP_REQ_CTX_nbio()
627 rctx->state = OHS_ERROR; in OSSL_HTTP_REQ_CTX_nbio()
631 key = (char *)rctx->buf; in OSSL_HTTP_REQ_CTX_nbio()
644 if (rctx->state == OHS_REDIRECT in OSSL_HTTP_REQ_CTX_nbio()
646 rctx->redirection_url = value; in OSSL_HTTP_REQ_CTX_nbio()
649 if (rctx->expected_ct != NULL in OSSL_HTTP_REQ_CTX_nbio()
651 if (strcasecmp(rctx->expected_ct, value) != 0) { in OSSL_HTTP_REQ_CTX_nbio()
654 rctx->expected_ct, value); in OSSL_HTTP_REQ_CTX_nbio()
674 if (!check_set_resp_len(rctx, resp_len)) in OSSL_HTTP_REQ_CTX_nbio()
680 for (p = rctx->buf; *p != '\0'; p++) { in OSSL_HTTP_REQ_CTX_nbio()
687 if (rctx->expected_ct != NULL && !found_expected_ct) { in OSSL_HTTP_REQ_CTX_nbio()
689 "expected=%s", rctx->expected_ct); in OSSL_HTTP_REQ_CTX_nbio()
692 if (rctx->keep_alive != 0 /* do not let server initiate keep_alive */ in OSSL_HTTP_REQ_CTX_nbio()
694 if (rctx->keep_alive == 2) { in OSSL_HTTP_REQ_CTX_nbio()
695 rctx->keep_alive = 0; in OSSL_HTTP_REQ_CTX_nbio()
699 rctx->keep_alive = 0; in OSSL_HTTP_REQ_CTX_nbio()
702 if (rctx->state == OHS_REDIRECT) { in OSSL_HTTP_REQ_CTX_nbio()
708 if (!rctx->expect_asn1) { in OSSL_HTTP_REQ_CTX_nbio()
709 rctx->state = OHS_STREAM; in OSSL_HTTP_REQ_CTX_nbio()
713 rctx->state = OHS_ASN1_HEADER; in OSSL_HTTP_REQ_CTX_nbio()
722 n = BIO_get_mem_data(rctx->mem, &p); in OSSL_HTTP_REQ_CTX_nbio()
756 if (!check_set_resp_len(rctx, resp_len)) in OSSL_HTTP_REQ_CTX_nbio()
759 rctx->state = OHS_ASN1_CONTENT; in OSSL_HTTP_REQ_CTX_nbio()
764 n = BIO_get_mem_data(rctx->mem, NULL); in OSSL_HTTP_REQ_CTX_nbio()
765 if (n < 0 || (size_t)n < rctx->resp_len) in OSSL_HTTP_REQ_CTX_nbio()
768 rctx->state = OHS_ASN1_DONE; in OSSL_HTTP_REQ_CTX_nbio()
773 int OSSL_HTTP_REQ_CTX_nbio_d2i(OSSL_HTTP_REQ_CTX *rctx, in OSSL_HTTP_REQ_CTX_nbio_d2i() argument
780 if ((rv = OSSL_HTTP_REQ_CTX_nbio(rctx)) != 1) in OSSL_HTTP_REQ_CTX_nbio_d2i()
782 *pval = ASN1_item_d2i(NULL, &p, BIO_get_mem_data(rctx->mem, &p), it); in OSSL_HTTP_REQ_CTX_nbio_d2i()
823 BIO *OSSL_HTTP_REQ_CTX_exchange(OSSL_HTTP_REQ_CTX *rctx) in OSSL_HTTP_REQ_CTX_exchange() argument
827 if (rctx == NULL) { in OSSL_HTTP_REQ_CTX_exchange()
833 rv = OSSL_HTTP_REQ_CTX_nbio(rctx); in OSSL_HTTP_REQ_CTX_exchange()
838 if (BIO_wait(rctx->rbio, rctx->max_time, 100 /* milliseconds */) <= 0) in OSSL_HTTP_REQ_CTX_exchange()
843 if (rctx->redirection_url == NULL) { /* an error occurred */ in OSSL_HTTP_REQ_CTX_exchange()
844 if (rctx->len_to_send > 0) in OSSL_HTTP_REQ_CTX_exchange()
851 return rctx->state == OHS_STREAM ? rctx->rbio : rctx->mem; in OSSL_HTTP_REQ_CTX_exchange()
854 int OSSL_HTTP_is_alive(const OSSL_HTTP_REQ_CTX *rctx) in OSSL_HTTP_is_alive() argument
856 return rctx != NULL && rctx->keep_alive != 0; in OSSL_HTTP_is_alive()
869 OSSL_HTTP_REQ_CTX *rctx = NULL; in OSSL_HTTP_open() local
935 rctx = http_req_ctx_new(bio == NULL, cbio, rbio != NULL ? rbio : cbio, in OSSL_HTTP_open()
940 if (rctx != NULL) in OSSL_HTTP_open()
946 return rctx; in OSSL_HTTP_open()
949 int OSSL_HTTP_set1_request(OSSL_HTTP_REQ_CTX *rctx, const char *path, in OSSL_HTTP_set1_request() argument
957 if (rctx == NULL) { in OSSL_HTTP_set1_request()
961 use_http_proxy = rctx->proxy != NULL && !rctx->use_ssl; in OSSL_HTTP_set1_request()
962 if (use_http_proxy && (rctx->server == NULL || rctx->port == NULL)) { in OSSL_HTTP_set1_request()
966 rctx->max_resp_len = max_resp_len; /* allows for 0: indefinite */ in OSSL_HTTP_set1_request()
968 return OSSL_HTTP_REQ_CTX_set_request_line(rctx, req != NULL, in OSSL_HTTP_set1_request()
969 use_http_proxy ? rctx->server in OSSL_HTTP_set1_request()
970 : NULL, rctx->port, path) in OSSL_HTTP_set1_request()
971 && add1_headers(rctx, headers, rctx->server) in OSSL_HTTP_set1_request()
972 && OSSL_HTTP_REQ_CTX_set_expected(rctx, expected_content_type, in OSSL_HTTP_set1_request()
974 && set1_content(rctx, content_type, req); in OSSL_HTTP_set1_request()
982 BIO *OSSL_HTTP_exchange(OSSL_HTTP_REQ_CTX *rctx, char **redirection_url) in OSSL_HTTP_exchange() argument
986 if (rctx == NULL) { in OSSL_HTTP_exchange()
994 resp = OSSL_HTTP_REQ_CTX_exchange(rctx); in OSSL_HTTP_exchange()
996 if (rctx->redirection_url != NULL) { in OSSL_HTTP_exchange()
1001 *redirection_url = OPENSSL_strdup(rctx->redirection_url); in OSSL_HTTP_exchange()
1016 if (rctx->server != NULL) { in OSSL_HTTP_exchange()
1018 rctx->use_ssl ? "s" : "", rctx->server, in OSSL_HTTP_exchange()
1019 rctx->port != NULL ? ":" : "", in OSSL_HTTP_exchange()
1020 rctx->port != NULL ? rctx->port : ""); in OSSL_HTTP_exchange()
1023 if (rctx->proxy != NULL) in OSSL_HTTP_exchange()
1024 ERR_add_error_data(2, " proxy=", rctx->proxy); in OSSL_HTTP_exchange()
1027 rctx->use_ssl ? " violating the protocol" : in OSSL_HTTP_exchange()
1070 OSSL_HTTP_REQ_CTX *rctx; in OSSL_HTTP_get() local
1085 rctx = OSSL_HTTP_open(host, port, proxy, no_proxy, in OSSL_HTTP_get()
1089 if (rctx != NULL) { in OSSL_HTTP_get()
1090 if (!OSSL_HTTP_set1_request(rctx, path, headers, in OSSL_HTTP_get()
1096 OSSL_HTTP_REQ_CTX_free(rctx); in OSSL_HTTP_get()
1098 resp = OSSL_HTTP_exchange(rctx, &redirection_url); in OSSL_HTTP_get()
1112 (void)OSSL_HTTP_close(rctx, 1); in OSSL_HTTP_get()
1120 if (!OSSL_HTTP_close(rctx, resp != NULL)) { in OSSL_HTTP_get()
1142 OSSL_HTTP_REQ_CTX *rctx = prctx == NULL ? NULL : *prctx; in OSSL_HTTP_transfer() local
1145 if (rctx == NULL) { in OSSL_HTTP_transfer()
1146 rctx = OSSL_HTTP_open(server, port, proxy, no_proxy, in OSSL_HTTP_transfer()
1151 if (rctx != NULL) { in OSSL_HTTP_transfer()
1152 if (OSSL_HTTP_set1_request(rctx, path, headers, content_type, req, in OSSL_HTTP_transfer()
1155 resp = OSSL_HTTP_exchange(rctx, NULL); in OSSL_HTTP_transfer()
1156 if (resp == NULL || !OSSL_HTTP_is_alive(rctx)) { in OSSL_HTTP_transfer()
1157 if (!OSSL_HTTP_close(rctx, resp != NULL)) { in OSSL_HTTP_transfer()
1161 rctx = NULL; in OSSL_HTTP_transfer()
1165 *prctx = rctx; in OSSL_HTTP_transfer()
1169 int OSSL_HTTP_close(OSSL_HTTP_REQ_CTX *rctx, int ok) in OSSL_HTTP_close() argument
1174 if (rctx != NULL && rctx->upd_fn != NULL) in OSSL_HTTP_close()
1175 ret = (*rctx->upd_fn)(rctx->wbio, rctx->upd_arg, 0, ok) != NULL; in OSSL_HTTP_close()
1176 OSSL_HTTP_REQ_CTX_free(rctx); in OSSL_HTTP_close()