Lines Matching refs:cf
127 #define CF_CTX_CALL_DATA(cf) \ argument
128 ((struct cf_msh3_ctx *)(cf)->ctx)->call_data
159 static CURLcode h3_data_setup(struct Curl_cfilter *cf, in h3_data_setup() argument
176 CURL_TRC_CF(data, cf, "data setup"); in h3_data_setup()
180 static void h3_data_done(struct Curl_cfilter *cf, struct Curl_easy *data) in h3_data_done() argument
184 (void)cf; in h3_data_done()
186 CURL_TRC_CF(data, cf, "easy handle is done"); in h3_data_done()
208 static void drain_stream(struct Curl_cfilter *cf, in drain_stream() argument
214 (void)cf; in drain_stream()
233 struct Curl_cfilter *cf = IfContext; in msh3_conn_connected() local
234 struct cf_msh3_ctx *ctx = cf->ctx; in msh3_conn_connected()
235 struct Curl_easy *data = CF_DATA_CURRENT(cf); in msh3_conn_connected()
238 CURL_TRC_CF(data, cf, "[MSH3] connected"); in msh3_conn_connected()
247 struct Curl_cfilter *cf = IfContext; in msh3_conn_shutdown_complete() local
248 struct cf_msh3_ctx *ctx = cf->ctx; in msh3_conn_shutdown_complete()
249 struct Curl_easy *data = CF_DATA_CURRENT(cf); in msh3_conn_shutdown_complete()
252 CURL_TRC_CF(data, cf, "[MSH3] shutdown complete"); in msh3_conn_shutdown_complete()
462 static ssize_t recv_closed_stream(struct Curl_cfilter *cf, in recv_closed_stream() argument
473 (void)cf; in recv_closed_stream()
477 CURL_TRC_CF(data, cf, "cf_recv, was reset -> %d", *err); in recv_closed_stream()
484 CURL_TRC_CF(data, cf, "cf_recv, closed uncleanly -> %d", *err); in recv_closed_stream()
488 CURL_TRC_CF(data, cf, "cf_recv, closed ok -> %d", *err); in recv_closed_stream()
497 static void set_quic_expire(struct Curl_cfilter *cf, struct Curl_easy *data) in set_quic_expire() argument
504 (void)cf; in set_quic_expire()
513 static ssize_t cf_msh3_recv(struct Curl_cfilter *cf, struct Curl_easy *data, in cf_msh3_recv() argument
520 (void)cf; in cf_msh3_recv()
525 CF_DATA_SAVE(save, cf, data); in cf_msh3_recv()
526 CURL_TRC_CF(data, cf, "req: recv with %zu byte buffer", len); in cf_msh3_recv()
541 CURL_TRC_CF(data, cf, "read recvbuf(len=%zu) -> %zd, %d", in cf_msh3_recv()
546 drain_stream(cf, data); in cf_msh3_recv()
549 nread = recv_closed_stream(cf, data, err); in cf_msh3_recv()
553 CURL_TRC_CF(data, cf, "req: nothing here, call again"); in cf_msh3_recv()
559 set_quic_expire(cf, data); in cf_msh3_recv()
560 CF_DATA_RESTORE(cf, save); in cf_msh3_recv()
564 static ssize_t cf_msh3_send(struct Curl_cfilter *cf, struct Curl_easy *data, in cf_msh3_send() argument
567 struct cf_msh3_ctx *ctx = cf->ctx; in cf_msh3_send()
577 CF_DATA_SAVE(save, cf, data); in cf_msh3_send()
584 CURL_TRC_CF(data, cf, "req: send %zu bytes", len); in cf_msh3_send()
633 CURL_TRC_CF(data, cf, "req: send %zu headers", nheader); in cf_msh3_send()
649 CURL_TRC_CF(data, cf, "req: send %zu body bytes", len); in cf_msh3_send()
667 set_quic_expire(cf, data); in cf_msh3_send()
671 CF_DATA_RESTORE(cf, save); in cf_msh3_send()
675 static int cf_msh3_get_select_socks(struct Curl_cfilter *cf, in cf_msh3_get_select_socks() argument
679 struct cf_msh3_ctx *ctx = cf->ctx; in cf_msh3_get_select_socks()
684 CF_DATA_SAVE(save, cf, data); in cf_msh3_get_select_socks()
690 drain_stream(cf, data); in cf_msh3_get_select_socks()
694 drain_stream(cf, data); in cf_msh3_get_select_socks()
697 CURL_TRC_CF(data, cf, "select_sock -> %d", bitmap); in cf_msh3_get_select_socks()
698 CF_DATA_RESTORE(cf, save); in cf_msh3_get_select_socks()
702 static bool cf_msh3_data_pending(struct Curl_cfilter *cf, in cf_msh3_data_pending() argument
709 CF_DATA_SAVE(save, cf, data); in cf_msh3_data_pending()
711 (void)cf; in cf_msh3_data_pending()
714 CURL_TRC_CF((struct Curl_easy *)data, cf, "data pending = %zu", in cf_msh3_data_pending()
719 drain_stream(cf, (struct Curl_easy *)data); in cf_msh3_data_pending()
722 CF_DATA_RESTORE(cf, save); in cf_msh3_data_pending()
726 static void cf_msh3_active(struct Curl_cfilter *cf, struct Curl_easy *data) in cf_msh3_active() argument
728 struct cf_msh3_ctx *ctx = cf->ctx; in cf_msh3_active()
731 cf->conn->sock[cf->sockindex] = ctx->sock[SP_LOCAL]; in cf_msh3_active()
733 if(cf->sockindex == FIRSTSOCKET) { in cf_msh3_active()
734 cf->conn->remote_addr = &ctx->addr; in cf_msh3_active()
736 cf->conn->bits.ipv6 = (ctx->addr.family == AF_INET6)? TRUE : FALSE; in cf_msh3_active()
738 Curl_persistconninfo(data, cf->conn, ctx->l_ip, ctx->l_port); in cf_msh3_active()
743 static CURLcode h3_data_pause(struct Curl_cfilter *cf, in h3_data_pause() argument
748 drain_stream(cf, data); in h3_data_pause()
754 static CURLcode cf_msh3_data_event(struct Curl_cfilter *cf, in cf_msh3_data_event() argument
762 CF_DATA_SAVE(save, cf, data); in cf_msh3_data_event()
768 result = h3_data_setup(cf, data); in cf_msh3_data_event()
771 result = h3_data_pause(cf, data, (arg1 != 0)); in cf_msh3_data_event()
774 h3_data_done(cf, data); in cf_msh3_data_event()
777 CURL_TRC_CF(data, cf, "req: send done"); in cf_msh3_data_event()
790 CURL_TRC_CF(data, cf, "req: update info"); in cf_msh3_data_event()
791 cf_msh3_active(cf, data); in cf_msh3_data_event()
797 CF_DATA_RESTORE(cf, save); in cf_msh3_data_event()
801 static CURLcode cf_connect_start(struct Curl_cfilter *cf, in cf_connect_start() argument
804 struct cf_msh3_ctx *ctx = cf->ctx; in cf_connect_start()
805 bool verify = !!cf->conn->ssl_config.verifypeer; in cf_connect_start()
810 MSH3_SET_PORT(&addr, (uint16_t)cf->conn->remote_port); in cf_connect_start()
812 if(verify && (cf->conn->ssl_config.CAfile || cf->conn->ssl_config.CApath)) { in cf_connect_start()
816 CURL_TRC_CF(data, cf, "non-standard CA not supported, " in cf_connect_start()
820 CURL_TRC_CF(data, cf, "non-standard CA not supported, " in cf_connect_start()
825 CURL_TRC_CF(data, cf, "connecting to %s:%d (verify=%d)", in cf_connect_start()
826 cf->conn->host.name, (int)cf->conn->remote_port, verify); in cf_connect_start()
836 cf, in cf_connect_start()
837 cf->conn->host.name, in cf_connect_start()
849 result = h3_data_setup(cf, data); in cf_connect_start()
856 static CURLcode cf_msh3_connect(struct Curl_cfilter *cf, in cf_msh3_connect() argument
860 struct cf_msh3_ctx *ctx = cf->ctx; in cf_msh3_connect()
865 if(cf->connected) { in cf_msh3_connect()
870 CF_DATA_SAVE(save, cf, data); in cf_msh3_connect()
883 result = cf_connect_start(cf, data); in cf_msh3_connect()
891 CURL_TRC_CF(data, cf, "handshake succeeded"); in cf_msh3_connect()
892 cf->conn->bits.multiplex = TRUE; /* at least potentially multiplexed */ in cf_msh3_connect()
893 cf->conn->httpversion = 30; in cf_msh3_connect()
894 cf->conn->bundle->multiuse = BUNDLE_MULTIPLEX; in cf_msh3_connect()
895 cf->connected = TRUE; in cf_msh3_connect()
896 cf->conn->alpn = CURL_HTTP_VERSION_3; in cf_msh3_connect()
898 connkeep(cf->conn, "HTTP/3 default"); in cf_msh3_connect()
908 CF_DATA_RESTORE(cf, save); in cf_msh3_connect()
912 static void cf_msh3_close(struct Curl_cfilter *cf, struct Curl_easy *data) in cf_msh3_close() argument
914 struct cf_msh3_ctx *ctx = cf->ctx; in cf_msh3_close()
918 CF_DATA_SAVE(save, cf, data); in cf_msh3_close()
921 CURL_TRC_CF(data, cf, "destroying"); in cf_msh3_close()
937 if(ctx->sock[SP_LOCAL] == cf->conn->sock[cf->sockindex]) { in cf_msh3_close()
938 CURL_TRC_CF(data, cf, "cf_msh3_close(%d) active", in cf_msh3_close()
940 cf->conn->sock[cf->sockindex] = CURL_SOCKET_BAD; in cf_msh3_close()
943 CURL_TRC_CF(data, cf, "cf_socket_close(%d) no longer at " in cf_msh3_close()
947 if(cf->sockindex == FIRSTSOCKET) in cf_msh3_close()
948 cf->conn->remote_addr = NULL; in cf_msh3_close()
959 CF_DATA_RESTORE(cf, save); in cf_msh3_close()
962 static void cf_msh3_destroy(struct Curl_cfilter *cf, struct Curl_easy *data) in cf_msh3_destroy() argument
966 CF_DATA_SAVE(save, cf, data); in cf_msh3_destroy()
967 cf_msh3_close(cf, data); in cf_msh3_destroy()
968 free(cf->ctx); in cf_msh3_destroy()
969 cf->ctx = NULL; in cf_msh3_destroy()
974 static CURLcode cf_msh3_query(struct Curl_cfilter *cf, in cf_msh3_query() argument
978 struct cf_msh3_ctx *ctx = cf->ctx; in cf_msh3_query()
990 if(cf->connected) in cf_msh3_query()
996 if(cf->connected) in cf_msh3_query()
1003 return cf->next? in cf_msh3_query()
1004 cf->next->cft->query(cf->next, data, query, pres1, pres2) : in cf_msh3_query()
1008 static bool cf_msh3_conn_is_alive(struct Curl_cfilter *cf, in cf_msh3_conn_is_alive() argument
1012 struct cf_msh3_ctx *ctx = cf->ctx; in cf_msh3_conn_is_alive()
1044 struct Curl_cfilter *cf = NULL; in Curl_cf_msh3_create() local
1059 result = Curl_cf_create(&cf, &Curl_cft_http3, ctx); in Curl_cf_msh3_create()
1062 *pcf = (!result)? cf : NULL; in Curl_cf_msh3_create()
1064 Curl_safefree(cf); in Curl_cf_msh3_create()
1075 struct Curl_cfilter *cf = conn? conn->cfilter[sockindex] : NULL; in Curl_conn_is_msh3() local
1078 for(; cf; cf = cf->next) { in Curl_conn_is_msh3()
1079 if(cf->cft == &Curl_cft_http3) in Curl_conn_is_msh3()
1081 if(cf->cft->flags & CF_TYPE_IP_CONNECT) in Curl_conn_is_msh3()