Lines Matching refs:cf
98 #define CF_CTX_CALL_DATA(cf) \ argument
99 ((struct cf_osslq_ctx *)(cf)->ctx)->call_data
101 static CURLcode cf_progress_ingress(struct Curl_cfilter *cf,
335 static CURLcode cf_osslq_shutdown(struct Curl_cfilter *cf, in cf_osslq_shutdown() argument
338 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_shutdown()
343 CF_DATA_SAVE(save, cf, data); in cf_osslq_shutdown()
345 if(cf->shutdown || ctx->protocol_shutdown) { in cf_osslq_shutdown()
350 CF_DATA_SAVE(save, cf, data); in cf_osslq_shutdown()
358 CURL_TRC_CF(data, cf, "shutdown ongoing"); in cf_osslq_shutdown()
363 CURL_TRC_CF(data, cf, "shutdown finished"); in cf_osslq_shutdown()
375 CURL_TRC_CF(data, cf, "shutdown not received, but closed"); in cf_osslq_shutdown()
381 CURL_TRC_CF(data, cf, "shutdown sent, want receive"); in cf_osslq_shutdown()
385 CURL_TRC_CF(data, cf, "shutdown send blocked"); in cf_osslq_shutdown()
391 CURL_TRC_CF(data, cf, "shutdown, ignore recv error: '%s', errno %d", in cf_osslq_shutdown()
402 CF_DATA_RESTORE(cf, save); in cf_osslq_shutdown()
406 static void cf_osslq_close(struct Curl_cfilter *cf, struct Curl_easy *data) in cf_osslq_close() argument
408 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_close()
411 CF_DATA_SAVE(save, cf, data); in cf_osslq_close()
413 CURL_TRC_CF(data, cf, "cf_osslq_close()"); in cf_osslq_close()
414 if(!cf->shutdown && !ctx->protocol_shutdown) { in cf_osslq_close()
423 cf->connected = FALSE; in cf_osslq_close()
424 CF_DATA_RESTORE(cf, save); in cf_osslq_close()
427 static void cf_osslq_destroy(struct Curl_cfilter *cf, struct Curl_easy *data) in cf_osslq_destroy() argument
429 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_destroy()
432 CF_DATA_SAVE(save, cf, data); in cf_osslq_destroy()
433 CURL_TRC_CF(data, cf, "destroy"); in cf_osslq_destroy()
435 CURL_TRC_CF(data, cf, "cf_osslq_destroy()"); in cf_osslq_destroy()
440 cf->ctx = NULL; in cf_osslq_destroy()
447 struct Curl_cfilter *cf, in cf_osslq_h3conn_add_stream() argument
450 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_h3conn_add_stream()
455 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] rejecting remote stream", in cf_osslq_h3conn_add_stream()
466 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] accepted remote uni stream", in cf_osslq_h3conn_add_stream()
471 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] reject remote non-uni-read" in cf_osslq_h3conn_add_stream()
480 static CURLcode cf_osslq_ssl_err(struct Curl_cfilter *cf, in cf_osslq_ssl_err() argument
484 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_ssl_err()
492 struct ssl_config_data *ssl_config = Curl_ssl_cf_get_config(cf, data); in cf_osslq_ssl_err()
545 Curl_cf_socket_peek(cf->next, data, NULL, NULL, &ip); in cf_osslq_ssl_err()
559 static CURLcode cf_osslq_verify_peer(struct Curl_cfilter *cf, in cf_osslq_verify_peer() argument
562 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_verify_peer()
564 cf->conn->bits.multiplex = TRUE; /* at least potentially multiplexed */ in cf_osslq_verify_peer()
565 cf->conn->httpversion = 30; in cf_osslq_verify_peer()
567 return Curl_vquic_tls_verify_peer(&ctx->tls, cf, data, &ctx->peer); in cf_osslq_verify_peer()
609 static CURLcode h3_data_setup(struct Curl_cfilter *cf, in h3_data_setup() argument
612 struct cf_osslq_ctx *ctx = cf->ctx; in h3_data_setup()
645 static void h3_data_done(struct Curl_cfilter *cf, struct Curl_easy *data) in h3_data_done() argument
647 struct cf_osslq_ctx *ctx = cf->ctx; in h3_data_done()
650 (void)cf; in h3_data_done()
652 CURL_TRC_CF(data, cf, "[%"FMT_PRId64"] easy handle is done", in h3_data_done()
666 static struct cf_osslq_stream *cf_osslq_get_qstream(struct Curl_cfilter *cf, in cf_osslq_get_qstream() argument
670 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_get_qstream()
701 static void h3_drain_stream(struct Curl_cfilter *cf, in h3_drain_stream() argument
704 struct cf_osslq_ctx *ctx = cf->ctx; in h3_drain_stream()
708 (void)cf; in h3_drain_stream()
718 static CURLcode h3_data_pause(struct Curl_cfilter *cf, in h3_data_pause() argument
724 h3_drain_stream(cf, data); in h3_data_pause()
734 struct Curl_cfilter *cf = user_data; in cb_h3_stream_close() local
735 struct cf_osslq_ctx *ctx = cf->ctx; in cb_h3_stream_close()
750 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] RESET: error %" FMT_PRIu64, in cb_h3_stream_close()
754 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] CLOSED", stream->s.id); in cb_h3_stream_close()
756 h3_drain_stream(cf, data); in cb_h3_stream_close()
765 static CURLcode write_resp_raw(struct Curl_cfilter *cf, in write_resp_raw() argument
770 struct cf_osslq_ctx *ctx = cf->ctx; in write_resp_raw()
775 (void)cf; in write_resp_raw()
800 struct Curl_cfilter *cf = user_data; in cb_h3_recv_data() local
801 struct cf_osslq_ctx *ctx = cf->ctx; in cb_h3_recv_data()
812 result = write_resp_raw(cf, data, buf, buflen, TRUE); in cb_h3_recv_data()
814 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] DATA len=%zu, ERROR %d", in cb_h3_recv_data()
819 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] DATA len=%zu, total=%zd", in cb_h3_recv_data()
821 h3_drain_stream(cf, data); in cb_h3_recv_data()
829 struct Curl_cfilter *cf = user_data; in cb_h3_deferred_consume() local
830 struct cf_osslq_ctx *ctx = cf->ctx; in cb_h3_deferred_consume()
837 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] deferred consume %zu bytes", in cb_h3_deferred_consume()
847 struct Curl_cfilter *cf = user_data; in cb_h3_recv_header() local
849 struct cf_osslq_ctx *ctx = cf->ctx; in cb_h3_recv_header()
859 (void)cf; in cb_h3_recv_header()
875 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] status: %s", stream_id, line); in cb_h3_recv_header()
876 result = write_resp_raw(cf, data, line, ncopy, FALSE); in cb_h3_recv_header()
883 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] header: %.*s: %.*s", in cb_h3_recv_header()
886 result = write_resp_raw(cf, data, h3name.base, h3name.len, FALSE); in cb_h3_recv_header()
890 result = write_resp_raw(cf, data, ": ", 2, FALSE); in cb_h3_recv_header()
894 result = write_resp_raw(cf, data, h3val.base, h3val.len, FALSE); in cb_h3_recv_header()
898 result = write_resp_raw(cf, data, "\r\n", 2, FALSE); in cb_h3_recv_header()
909 struct Curl_cfilter *cf = user_data; in cb_h3_end_headers() local
910 struct cf_osslq_ctx *ctx = cf->ctx; in cb_h3_end_headers()
918 (void)cf; in cb_h3_end_headers()
923 result = write_resp_raw(cf, data, "\r\n", 2, FALSE); in cb_h3_end_headers()
928 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] end_headers, status=%d", in cb_h3_end_headers()
933 h3_drain_stream(cf, data); in cb_h3_end_headers()
941 struct Curl_cfilter *cf = user_data; in cb_h3_stop_sending() local
942 struct cf_osslq_ctx *ctx = cf->ctx; in cb_h3_stop_sending()
952 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] stop_sending", stream_id); in cb_h3_stop_sending()
960 struct Curl_cfilter *cf = user_data; in cb_h3_reset_stream() local
961 struct cf_osslq_ctx *ctx = cf->ctx; in cb_h3_reset_stream()
972 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] reset -> %d", stream_id, rv); in cb_h3_reset_stream()
986 struct Curl_cfilter *cf = user_data; in cb_h3_read_req_body() local
987 struct cf_osslq_ctx *ctx = cf->ctx; in cb_h3_read_req_body()
992 (void)cf; in cb_h3_read_req_body()
1032 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] read req body -> AGAIN", in cb_h3_read_req_body()
1037 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] read req body -> " in cb_h3_read_req_body()
1050 struct Curl_cfilter *cf = user_data; in cb_h3_acked_stream_data() local
1051 struct cf_osslq_ctx *ctx = cf->ctx; in cb_h3_acked_stream_data()
1056 (void)cf; in cb_h3_acked_stream_data()
1154 static CURLcode cf_osslq_ctx_start(struct Curl_cfilter *cf, in cf_osslq_ctx_start() argument
1157 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_ctx_start()
1165 result = Curl_ssl_peer_init(&ctx->peer, cf, TRNSPRT_QUIC); in cf_osslq_ctx_start()
1170 result = Curl_vquic_tls_init(&ctx->tls, cf, data, &ctx->peer, in cf_osslq_ctx_start()
1181 Curl_cf_socket_peek(cf->next, data, &ctx->q.sockfd, &peer_addr, NULL); in cf_osslq_ctx_start()
1232 CURL_TRC_CF(data, cf, "error setting idle timeout, "); in cf_osslq_ctx_start()
1244 result = cf_osslq_h3conn_init(ctx, ctx->tls.ossl.ssl, cf); in cf_osslq_ctx_start()
1251 CURL_TRC_CF(data, cf, "QUIC tls init -> %d", result); in cf_osslq_ctx_start()
1256 struct Curl_cfilter *cf; member
1278 CURL_TRC_CF(x->data, x->cf, "[%" FMT_PRId64 "] h3_quic_recv -> EOS", in h3_quic_recv()
1287 CURL_TRC_CF(x->data, x->cf, "[%" FMT_PRId64 "] h3_quic_recv -> RESET, " in h3_quic_recv()
1297 *err = cf_osslq_ssl_err(x->cf, x->data, detail, CURLE_RECV_ERROR); in h3_quic_recv()
1305 struct Curl_cfilter *cf, in cf_osslq_stream_recv() argument
1308 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_stream_recv()
1319 x.cf = cf; in cf_osslq_stream_recv()
1344 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] forward %zu bytes " in cf_osslq_stream_recv()
1384 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] close nghttp3 stream -> %d", in cf_osslq_stream_recv()
1397 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] cf_osslq_stream_recv -> %d", in cf_osslq_stream_recv()
1402 static CURLcode cf_progress_ingress(struct Curl_cfilter *cf, in cf_progress_ingress() argument
1405 struct cf_osslq_ctx *ctx = cf->ctx; in cf_progress_ingress()
1420 (void)cf_osslq_h3conn_add_stream(&ctx->h3, snew, cf, data); in cf_progress_ingress()
1425 result = cf_osslq_ssl_err(cf, data, detail, CURLE_RECV_ERROR); in cf_progress_ingress()
1431 result = cf_osslq_stream_recv(&ctx->h3.remote_ctrl[i], cf, data); in cf_progress_ingress()
1448 result = cf_osslq_stream_recv(&stream->s, cf, sdata); in cf_progress_ingress()
1457 CURL_TRC_CF(data, cf, "progress_ingress -> %d", result); in cf_progress_ingress()
1462 static CURLcode cf_osslq_check_and_unblock(struct Curl_cfilter *cf, in cf_osslq_check_and_unblock() argument
1465 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_check_and_unblock()
1478 h3_drain_stream(cf, sdata); in cf_osslq_check_and_unblock()
1479 CURL_TRC_CF(sdata, cf, "unblocked"); in cf_osslq_check_and_unblock()
1487 static CURLcode h3_send_streams(struct Curl_cfilter *cf, in h3_send_streams() argument
1490 struct cf_osslq_ctx *ctx = cf->ctx; in h3_send_streams()
1520 s = cf_osslq_get_qstream(cf, data, stream_id); in h3_send_streams()
1544 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] send %zu bytes to QUIC ok", in h3_send_streams()
1554 CURL_TRC_CF(data, cf, "[%"FMT_PRId64 "] send %zu bytes to " in h3_send_streams()
1563 result = cf_osslq_ssl_err(cf, data, detail, CURLE_HTTP3); in h3_send_streams()
1587 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] forwarded %zu/%zu h3 bytes " in h3_send_streams()
1593 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] closing QUIC stream", s->id); in h3_send_streams()
1599 CURL_TRC_CF(data, cf, "h3_send_streams -> %d", result); in h3_send_streams()
1603 static CURLcode cf_progress_egress(struct Curl_cfilter *cf, in cf_progress_egress() argument
1606 struct cf_osslq_ctx *ctx = cf->ctx; in cf_progress_egress()
1613 result = h3_send_streams(cf, data); in cf_progress_egress()
1619 result = cf_osslq_ssl_err(cf, data, detail, CURLE_SEND_ERROR); in cf_progress_egress()
1622 result = cf_osslq_check_and_unblock(cf, data); in cf_progress_egress()
1625 CURL_TRC_CF(data, cf, "progress_egress -> %d", result); in cf_progress_egress()
1629 static CURLcode check_and_set_expiry(struct Curl_cfilter *cf, in check_and_set_expiry() argument
1632 struct cf_osslq_ctx *ctx = cf->ctx; in check_and_set_expiry()
1644 result = cf_progress_ingress(cf, data); in check_and_set_expiry()
1647 result = cf_progress_egress(cf, data); in check_and_set_expiry()
1656 CURL_TRC_CF(data, cf, "QUIC expiry in %ldms", (long)timeoutms); in check_and_set_expiry()
1663 static CURLcode cf_osslq_connect(struct Curl_cfilter *cf, in cf_osslq_connect() argument
1667 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_connect()
1673 if(cf->connected) { in cf_osslq_connect()
1679 if(!cf->next->connected) { in cf_osslq_connect()
1680 result = Curl_conn_cf_connect(cf->next, data, blocking, done); in cf_osslq_connect()
1687 CF_DATA_SAVE(save, cf, data); in cf_osslq_connect()
1691 result = cf_osslq_ctx_start(cf, data); in cf_osslq_connect()
1708 result = Curl_vquic_tls_before_recv(&ctx->tls, cf, data); in cf_osslq_connect()
1719 CURL_TRC_CF(data, cf, "handshake complete after %dms", in cf_osslq_connect()
1721 result = cf_osslq_verify_peer(cf, data); in cf_osslq_connect()
1723 CURL_TRC_CF(data, cf, "peer verified"); in cf_osslq_connect()
1724 cf->connected = TRUE; in cf_osslq_connect()
1725 cf->conn->alpn = CURL_HTTP_VERSION_3; in cf_osslq_connect()
1727 connkeep(cf->conn, "HTTP/3 default"); in cf_osslq_connect()
1735 CURL_TRC_CF(data, cf, "QUIC SSL_connect() -> WANT_RECV"); in cf_osslq_connect()
1739 CURL_TRC_CF(data, cf, "QUIC SSL_connect() -> WANT_SEND"); in cf_osslq_connect()
1745 CURL_TRC_CF(data, cf, "QUIC SSL_connect() -> WANT_ASYNC"); in cf_osslq_connect()
1755 result = cf_osslq_ssl_err(cf, data, detail, CURLE_COULDNT_CONNECT); in cf_osslq_connect()
1774 Curl_cf_socket_peek(cf->next, data, NULL, NULL, &ip); in cf_osslq_connect()
1780 result = check_and_set_expiry(cf, data); in cf_osslq_connect()
1782 CURL_TRC_CF(data, cf, "connect -> %d, done=%d", result, *done); in cf_osslq_connect()
1783 CF_DATA_RESTORE(cf, save); in cf_osslq_connect()
1787 static ssize_t h3_stream_open(struct Curl_cfilter *cf, in h3_stream_open() argument
1792 struct cf_osslq_ctx *ctx = cf->ctx; in h3_stream_open()
1805 *err = h3_data_setup(cf, data); in h3_stream_open()
1887 CURL_TRC_CF(data, cf, "h3sid[%"FMT_PRId64"] failed to send, " in h3_stream_open()
1891 CURL_TRC_CF(data, cf, "h3sid[%"FMT_PRId64 "] failed to send -> %d (%s)", in h3_stream_open()
1917 static ssize_t cf_osslq_send(struct Curl_cfilter *cf, struct Curl_easy *data, in cf_osslq_send() argument
1921 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_send()
1928 CF_DATA_SAVE(save, cf, data); in cf_osslq_send()
1929 DEBUGASSERT(cf->connected); in cf_osslq_send()
1934 result = cf_progress_ingress(cf, data); in cf_osslq_send()
1941 result = cf_progress_egress(cf, data); in cf_osslq_send()
1949 nwritten = h3_stream_open(cf, data, buf, len, err); in cf_osslq_send()
1951 CURL_TRC_CF(data, cf, "failed to open stream -> %d", *err); in cf_osslq_send()
1963 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] discarding data" in cf_osslq_send()
1969 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] send_body(len=%zu) " in cf_osslq_send()
1977 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] cf_send, add to " in cf_osslq_send()
1987 result = cf_progress_egress(cf, data); in cf_osslq_send()
1994 result = check_and_set_expiry(cf, data); in cf_osslq_send()
1995 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] cf_send(len=%zu) -> %zd, %d", in cf_osslq_send()
1997 CF_DATA_RESTORE(cf, save); in cf_osslq_send()
2001 static ssize_t recv_closed_stream(struct Curl_cfilter *cf, in recv_closed_stream() argument
2008 (void)cf; in recv_closed_stream()
2032 static ssize_t cf_osslq_recv(struct Curl_cfilter *cf, struct Curl_easy *data, in cf_osslq_recv() argument
2035 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_recv()
2042 CF_DATA_SAVE(save, cf, data); in cf_osslq_recv()
2043 DEBUGASSERT(cf->connected); in cf_osslq_recv()
2058 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] read recvbuf(len=%zu) " in cf_osslq_recv()
2064 result = cf_progress_ingress(cf, data); in cf_osslq_recv()
2076 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] read recvbuf(len=%zu) " in cf_osslq_recv()
2083 h3_drain_stream(cf, data); in cf_osslq_recv()
2087 nread = recv_closed_stream(cf, data, stream, err); in cf_osslq_recv()
2095 if(cf_progress_egress(cf, data)) { in cf_osslq_recv()
2100 CURLcode result2 = check_and_set_expiry(cf, data); in cf_osslq_recv()
2106 CURL_TRC_CF(data, cf, "[%" FMT_PRId64 "] cf_recv(len=%zu) -> %zd, %d", in cf_osslq_recv()
2108 CF_DATA_RESTORE(cf, save); in cf_osslq_recv()
2116 static bool cf_osslq_data_pending(struct Curl_cfilter *cf, in cf_osslq_data_pending() argument
2119 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_data_pending()
2121 (void)cf; in cf_osslq_data_pending()
2125 static CURLcode cf_osslq_data_event(struct Curl_cfilter *cf, in cf_osslq_data_event() argument
2129 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_data_event()
2133 CF_DATA_SAVE(save, cf, data); in cf_osslq_data_event()
2140 result = h3_data_pause(cf, data, (arg1 != 0)); in cf_osslq_data_event()
2143 h3_data_done(cf, data); in cf_osslq_data_event()
2146 h3_data_done(cf, data); in cf_osslq_data_event()
2160 CURL_TRC_CF(data, cf, "data idle"); in cf_osslq_data_event()
2162 result = check_and_set_expiry(cf, data); in cf_osslq_data_event()
2169 CF_DATA_RESTORE(cf, save); in cf_osslq_data_event()
2173 static bool cf_osslq_conn_is_alive(struct Curl_cfilter *cf, in cf_osslq_conn_is_alive() argument
2177 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_conn_is_alive()
2181 CF_DATA_SAVE(save, cf, data); in cf_osslq_conn_is_alive()
2194 CURL_TRC_CF(data, cf, "error getting negotiated idle timeout, " in cf_osslq_conn_is_alive()
2198 CURL_TRC_CF(data, cf, "negotiated idle timeout: %zums", (size_t)idle_ms); in cf_osslq_conn_is_alive()
2206 if(!cf->next || !cf->next->cft->is_alive(cf->next, data, input_pending)) in cf_osslq_conn_is_alive()
2216 result = cf_progress_ingress(cf, data); in cf_osslq_conn_is_alive()
2217 CURL_TRC_CF(data, cf, "is_alive, progress ingress -> %d", result); in cf_osslq_conn_is_alive()
2222 CF_DATA_RESTORE(cf, save); in cf_osslq_conn_is_alive()
2226 static void cf_osslq_adjust_pollset(struct Curl_cfilter *cf, in cf_osslq_adjust_pollset() argument
2230 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_adjust_pollset()
2235 else if(!cf->connected) { in cf_osslq_adjust_pollset()
2259 static CURLcode cf_osslq_query(struct Curl_cfilter *cf, in cf_osslq_query() argument
2263 struct cf_osslq_ctx *ctx = cf->ctx; in cf_osslq_query()
2272 CURL_TRC_CF(data, cf, "error getting available local bidi streams"); in cf_osslq_query()
2276 v += CONN_INUSE(cf->conn); in cf_osslq_query()
2281 CURL_TRC_CF(data, cf, "query max_conncurrent -> %d", *pres1); in cf_osslq_query()
2300 if(cf->connected) in cf_osslq_query()
2307 return cf->next ? in cf_osslq_query()
2308 cf->next->cft->query(cf->next, data, query, pres1, pres2) : in cf_osslq_query()
2337 struct Curl_cfilter *cf = NULL, *udp_cf = NULL; in Curl_cf_osslq_create() local
2348 result = Curl_cf_create(&cf, &Curl_cft_http3, ctx); in Curl_cf_osslq_create()
2356 cf->conn = conn; in Curl_cf_osslq_create()
2357 udp_cf->conn = cf->conn; in Curl_cf_osslq_create()
2358 udp_cf->sockindex = cf->sockindex; in Curl_cf_osslq_create()
2359 cf->next = udp_cf; in Curl_cf_osslq_create()
2362 *pcf = (!result) ? cf : NULL; in Curl_cf_osslq_create()
2365 Curl_conn_cf_discard_sub(cf, udp_cf, data, TRUE); in Curl_cf_osslq_create()
2366 Curl_safefree(cf); in Curl_cf_osslq_create()
2376 struct Curl_cfilter *cf = conn ? conn->cfilter[sockindex] : NULL; in Curl_conn_is_osslq() local
2379 for(; cf; cf = cf->next) { in Curl_conn_is_osslq()
2380 if(cf->cft == &Curl_cft_http3) in Curl_conn_is_osslq()
2382 if(cf->cft->flags & CF_TYPE_IP_CONNECT) in Curl_conn_is_osslq()