From 8e85764b7bd7f05f5bf30bfc40fd40327340cf60 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Mon, 22 May 2023 09:00:16 +0200 Subject: [PATCH] lib: remove unused functions, make single-use static Closes #11174 --- lib/bufq.c | 30 ++++++++++------- lib/bufq.h | 18 ---------- lib/cf-haproxy.c | 16 --------- lib/cf-haproxy.h | 4 --- lib/cf-https-connect.c | 32 ++++-------------- lib/cf-socket.c | 32 +++++++++++------- lib/cf-socket.h | 18 ---------- lib/cfilters.c | 51 +++++++---------------------- lib/cfilters.h | 13 +------- lib/connect.c | 74 ++++++++++++++++++++++++------------------ lib/connect.h | 25 -------------- lib/dynhds.c | 51 ++++++++++++++--------------- lib/dynhds.h | 2 ++ lib/hostip.c | 4 +-- lib/hostip.h | 3 -- lib/http2.c | 3 +- lib/http2.h | 2 -- lib/socks.c | 13 -------- lib/socks.h | 4 --- lib/url.c | 15 +++++---- lib/url.h | 2 -- lib/vquic/vquic.c | 10 +++--- lib/vquic/vquic_int.h | 6 ---- lib/vtls/vtls.c | 40 ----------------------- lib/vtls/vtls.h | 18 ---------- lib/vtls/x509asn1.c | 40 +++++++++++++++-------- 26 files changed, 175 insertions(+), 351 deletions(-) diff --git a/lib/bufq.c b/lib/bufq.c index e804193224..30598cf586 100644 --- a/lib/bufq.c +++ b/lib/bufq.c @@ -181,8 +181,8 @@ void Curl_bufcp_init(struct bufc_pool *pool, pool->spare_max = spare_max; } -CURLcode Curl_bufcp_take(struct bufc_pool *pool, - struct buf_chunk **pchunk) +static CURLcode bufcp_take(struct bufc_pool *pool, + struct buf_chunk **pchunk) { struct buf_chunk *chunk = NULL; @@ -205,8 +205,8 @@ CURLcode Curl_bufcp_take(struct bufc_pool *pool, return CURLE_OK; } -void Curl_bufcp_put(struct bufc_pool *pool, - struct buf_chunk *chunk) +static void bufcp_put(struct bufc_pool *pool, + struct buf_chunk *chunk) { if(pool->spare_count >= pool->spare_max) { free(chunk); @@ -335,7 +335,7 @@ static struct buf_chunk *get_spare(struct bufq *q) return NULL; if(q->pool) { - if(Curl_bufcp_take(q->pool, &chunk)) + if(bufcp_take(q->pool, &chunk)) return NULL; ++q->chunk_count; return chunk; @@ -360,7 +360,7 @@ static void prune_head(struct bufq *q) if(q->tail == chunk) q->tail = q->head; if(q->pool) { - Curl_bufcp_put(q->pool, chunk); + bufcp_put(q->pool, chunk); --q->chunk_count; } else if((q->chunk_count > q->max_chunks) || @@ -605,9 +605,18 @@ ssize_t Curl_bufq_sipn(struct bufq *q, size_t max_len, return nread; } -ssize_t Curl_bufq_slurpn(struct bufq *q, size_t max_len, - Curl_bufq_reader *reader, void *reader_ctx, - CURLcode *err) +/** + * Read up to `max_len` bytes and append it to the end of the buffer queue. + * if `max_len` is 0, no limit is imposed and the call behaves exactly + * the same as `Curl_bufq_slurp()`. + * Returns the total amount of buf read (may be 0) or -1 on other + * reader errors. + * Note that even in case of a -1 chunks may have been read and + * the buffer queue will have different length than before. + */ +static ssize_t bufq_slurpn(struct bufq *q, size_t max_len, + Curl_bufq_reader *reader, void *reader_ctx, + CURLcode *err) { ssize_t nread = 0, n; @@ -646,6 +655,5 @@ ssize_t Curl_bufq_slurpn(struct bufq *q, size_t max_len, ssize_t Curl_bufq_slurp(struct bufq *q, Curl_bufq_reader *reader, void *reader_ctx, CURLcode *err) { - return Curl_bufq_slurpn(q, 0, reader, reader_ctx, err); + return bufq_slurpn(q, 0, reader, reader_ctx, err); } - diff --git a/lib/bufq.h b/lib/bufq.h index b42a880ac8..89b5c84efe 100644 --- a/lib/bufq.h +++ b/lib/bufq.h @@ -60,11 +60,6 @@ struct bufc_pool { void Curl_bufcp_init(struct bufc_pool *pool, size_t chunk_size, size_t spare_max); -CURLcode Curl_bufcp_take(struct bufc_pool *pool, - struct buf_chunk **pchunk); -void Curl_bufcp_put(struct bufc_pool *pool, - struct buf_chunk *chunk); - void Curl_bufcp_free(struct bufc_pool *pool); /** @@ -251,19 +246,6 @@ typedef ssize_t Curl_bufq_reader(void *reader_ctx, ssize_t Curl_bufq_slurp(struct bufq *q, Curl_bufq_reader *reader, void *reader_ctx, CURLcode *err); -/** - * Read up to `max_len` bytes and append it to the end of the buffer queue. - * if `max_len` is 0, no limit is imposed and the call behaves exactly - * the same as `Curl_bufq_slurp()`. - * Returns the total amount of buf read (may be 0) or -1 on other - * reader errors. - * Note that even in case of a -1 chunks may have been read and - * the buffer queue will have different length than before. - */ -ssize_t Curl_bufq_slurpn(struct bufq *q, size_t max_len, - Curl_bufq_reader *reader, void *reader_ctx, - CURLcode *err); - /** * Read *once* up to `max_len` bytes and append it to the buffer. * if `max_len` is 0, no limit is imposed besides the chunk space. diff --git a/lib/cf-haproxy.c b/lib/cf-haproxy.c index 84aa9156b9..86d7fd1837 100644 --- a/lib/cf-haproxy.c +++ b/lib/cf-haproxy.c @@ -228,22 +228,6 @@ out: return result; } -CURLcode Curl_conn_haproxy_add(struct Curl_easy *data, - struct connectdata *conn, - int sockindex) -{ - struct Curl_cfilter *cf; - CURLcode result; - - result = cf_haproxy_create(&cf, data); - if(result) - goto out; - Curl_conn_cf_add(data, conn, sockindex, cf); - -out: - return result; -} - CURLcode Curl_cf_haproxy_insert_after(struct Curl_cfilter *cf_at, struct Curl_easy *data) { diff --git a/lib/cf-haproxy.h b/lib/cf-haproxy.h index f082bd98f1..d02c323e7b 100644 --- a/lib/cf-haproxy.h +++ b/lib/cf-haproxy.h @@ -29,10 +29,6 @@ #if !defined(CURL_DISABLE_PROXY) -CURLcode Curl_conn_haproxy_add(struct Curl_easy *data, - struct connectdata *conn, - int sockindex); - CURLcode Curl_cf_haproxy_insert_after(struct Curl_cfilter *cf_at, struct Curl_easy *data); diff --git a/lib/cf-https-connect.c b/lib/cf-https-connect.c index ed70ad05f9..d03cd1e0d5 100644 --- a/lib/cf-https-connect.c +++ b/lib/cf-https-connect.c @@ -496,11 +496,11 @@ out: return result; } -CURLcode Curl_cf_http_connect_add(struct Curl_easy *data, - struct connectdata *conn, - int sockindex, - const struct Curl_dns_entry *remotehost, - bool try_h3, bool try_h21) +static CURLcode cf_http_connect_add(struct Curl_easy *data, + struct connectdata *conn, + int sockindex, + const struct Curl_dns_entry *remotehost, + bool try_h3, bool try_h21) { struct Curl_cfilter *cf; CURLcode result = CURLE_OK; @@ -514,24 +514,6 @@ out: return result; } -CURLcode -Curl_cf_http_connect_insert_after(struct Curl_cfilter *cf_at, - struct Curl_easy *data, - const struct Curl_dns_entry *remotehost, - bool try_h3, bool try_h21) -{ - struct Curl_cfilter *cf; - CURLcode result; - - DEBUGASSERT(data); - result = cf_hc_create(&cf, data, remotehost, try_h3, try_h21); - if(result) - goto out; - Curl_conn_cf_insert_after(cf_at, cf); -out: - return result; -} - CURLcode Curl_cf_https_setup(struct Curl_easy *data, struct connectdata *conn, int sockindex, @@ -560,8 +542,8 @@ CURLcode Curl_cf_https_setup(struct Curl_easy *data, try_h21 = TRUE; } - result = Curl_cf_http_connect_add(data, conn, sockindex, remotehost, - try_h3, try_h21); + result = cf_http_connect_add(data, conn, sockindex, remotehost, + try_h3, try_h21); out: return result; } diff --git a/lib/cf-socket.c b/lib/cf-socket.c index bd3719b8bd..51c12910a2 100644 --- a/lib/cf-socket.c +++ b/lib/cf-socket.c @@ -212,9 +212,13 @@ tcpkeepalive(struct Curl_easy *data, } } -void Curl_sock_assign_addr(struct Curl_sockaddr_ex *dest, - const struct Curl_addrinfo *ai, - int transport) +/** + * Assign the address `ai` to the Curl_sockaddr_ex `dest` and + * set the transport used. + */ +static void sock_assign_addr(struct Curl_sockaddr_ex *dest, + const struct Curl_addrinfo *ai, + int transport) { /* * The Curl_sockaddr_ex structure is basically libcurl's external API @@ -306,7 +310,7 @@ CURLcode Curl_socket_open(struct Curl_easy *data, /* if the caller doesn't want info back, use a local temp copy */ addr = &dummy; - Curl_sock_assign_addr(addr, ai, transport); + sock_assign_addr(addr, ai, transport); return socket_open(data, addr, sockfd); } @@ -717,8 +721,11 @@ static bool verifyconnect(curl_socket_t sockfd, int *error) return rc; } -CURLcode Curl_socket_connect_result(struct Curl_easy *data, - const char *ipaddress, int error) +/** + * Determine the curl code for a socket connect() == -1 with errno. + */ +static CURLcode socket_connect_result(struct Curl_easy *data, + const char *ipaddress, int error) { char buffer[STRERROR_LEN]; @@ -781,7 +788,7 @@ static void cf_socket_ctx_init(struct cf_socket_ctx *ctx, memset(ctx, 0, sizeof(*ctx)); ctx->sock = CURL_SOCKET_BAD; ctx->transport = transport; - Curl_sock_assign_addr(&ctx->addr, ai, transport); + sock_assign_addr(&ctx->addr, ai, transport); Curl_bufq_init(&ctx->recvbuf, NW_RECV_CHUNK_SIZE, NW_RECV_CHUNKS); } @@ -1128,7 +1135,7 @@ static CURLcode cf_tcp_connect(struct Curl_cfilter *cf, /* Connect TCP socket */ rc = do_connect(cf, data, cf->conn->bits.tcp_fastopen); if(-1 == rc) { - result = Curl_socket_connect_result(data, ctx->r_ip, SOCKERRNO); + result = socket_connect_result(data, ctx->r_ip, SOCKERRNO); goto out; } } @@ -1562,7 +1569,7 @@ static CURLcode cf_udp_setup_quic(struct Curl_cfilter *cf, rc = connect(ctx->sock, &ctx->addr.sa_addr, ctx->addr.addrlen); if(-1 == rc) { - return Curl_socket_connect_result(data, ctx->r_ip, SOCKERRNO); + return socket_connect_result(data, ctx->r_ip, SOCKERRNO); } set_local_ip(cf, data); DEBUGF(LOG_CF(data, cf, "%s socket %" CURL_FORMAT_SOCKET_T @@ -1866,7 +1873,10 @@ CURLcode Curl_conn_tcp_accepted_set(struct Curl_easy *data, return CURLE_OK; } -bool Curl_cf_is_socket(struct Curl_cfilter *cf) +/** + * Return TRUE iff `cf` is a socket filter. + */ +static bool cf_is_socket(struct Curl_cfilter *cf) { return cf && (cf->cft == &Curl_cft_tcp || cf->cft == &Curl_cft_udp || @@ -1881,7 +1891,7 @@ CURLcode Curl_cf_socket_peek(struct Curl_cfilter *cf, const char **pr_ip_str, int *pr_port, const char **pl_ip_str, int *pl_port) { - if(Curl_cf_is_socket(cf) && cf->ctx) { + if(cf_is_socket(cf) && cf->ctx) { struct cf_socket_ctx *ctx = cf->ctx; if(psock) diff --git a/lib/cf-socket.h b/lib/cf-socket.h index 652cb5fa24..8fef641f7e 100644 --- a/lib/cf-socket.h +++ b/lib/cf-socket.h @@ -87,12 +87,6 @@ CURLcode Curl_socket_open(struct Curl_easy *data, int Curl_socket_close(struct Curl_easy *data, struct connectdata *conn, curl_socket_t sock); -/** - * Determine the curl code for a socket connect() == -1 with errno. - */ -CURLcode Curl_socket_connect_result(struct Curl_easy *data, - const char *ipaddress, int error); - #ifdef USE_WINSOCK /* When you run a program that uses the Windows Sockets API, you may experience slow performance when you copy data to a TCP server. @@ -108,13 +102,6 @@ void Curl_sndbufset(curl_socket_t sockfd); #define Curl_sndbufset(y) Curl_nop_stmt #endif -/** - * Assign the address `ai` to the Curl_sockaddr_ex `dest` and - * set the transport used. - */ -void Curl_sock_assign_addr(struct Curl_sockaddr_ex *dest, - const struct Curl_addrinfo *ai, - int transport); /** * Creates a cfilter that opens a TCP socket to the given address @@ -171,11 +158,6 @@ CURLcode Curl_conn_tcp_accepted_set(struct Curl_easy *data, int sockindex, curl_socket_t *s); -/** - * Return TRUE iff `cf` is a socket filter. - */ -bool Curl_cf_is_socket(struct Curl_cfilter *cf); - /** * Peek at the socket and remote ip/port the socket filter is using. * The filter owns all returned values. diff --git a/lib/cfilters.c b/lib/cfilters.c index 067de23cca..291c823f3d 100644 --- a/lib/cfilters.c +++ b/lib/cfilters.c @@ -44,40 +44,18 @@ #define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0])) #endif - -void Curl_cf_def_destroy_this(struct Curl_cfilter *cf, struct Curl_easy *data) -{ - (void)cf; - (void)data; -} - +#ifdef DEBUGBUILD +/* used by unit2600.c */ void Curl_cf_def_close(struct Curl_cfilter *cf, struct Curl_easy *data) { cf->connected = FALSE; if(cf->next) cf->next->cft->close(cf->next, data); } +#endif -CURLcode Curl_cf_def_connect(struct Curl_cfilter *cf, - struct Curl_easy *data, - bool blocking, bool *done) -{ - CURLcode result; - - if(cf->connected) { - *done = TRUE; - return CURLE_OK; - } - if(cf->next) { - result = cf->next->cft->connect(cf->next, data, blocking, done); - if(!result && *done) { - cf->connected = TRUE; - } - return result; - } - *done = FALSE; - return CURLE_FAILED_INIT; -} +static void conn_report_connect_stats(struct Curl_easy *data, + struct connectdata *conn); void Curl_cf_def_get_host(struct Curl_cfilter *cf, struct Curl_easy *data, const char **phost, const char **pdisplay_host, @@ -334,14 +312,6 @@ int Curl_conn_cf_get_select_socks(struct Curl_cfilter *cf, return 0; } -bool Curl_conn_cf_data_pending(struct Curl_cfilter *cf, - const struct Curl_easy *data) -{ - if(cf) - return cf->cft->has_data_pending(cf, data); - return FALSE; -} - ssize_t Curl_conn_cf_send(struct Curl_cfilter *cf, struct Curl_easy *data, const void *buf, size_t len, CURLcode *err) { @@ -381,11 +351,11 @@ CURLcode Curl_conn_connect(struct Curl_easy *data, result = cf->cft->connect(cf, data, blocking, done); if(!result && *done) { Curl_conn_ev_update_info(data, data->conn); - Curl_conn_report_connect_stats(data, data->conn); + conn_report_connect_stats(data, data->conn); data->conn->keepalive = Curl_now(); } else if(result) { - Curl_conn_report_connect_stats(data, data->conn); + conn_report_connect_stats(data, data->conn); } } @@ -625,8 +595,11 @@ void Curl_conn_ev_update_info(struct Curl_easy *data, cf_cntrl_all(conn, data, TRUE, CF_CTRL_CONN_INFO_UPDATE, 0, NULL); } -void Curl_conn_report_connect_stats(struct Curl_easy *data, - struct connectdata *conn) +/** + * Update connection statistics + */ +static void conn_report_connect_stats(struct Curl_easy *data, + struct connectdata *conn) { struct Curl_cfilter *cf = conn->cfilter[FIRSTSOCKET]; if(cf) { diff --git a/lib/cfilters.h b/lib/cfilters.h index 35b7cfcb9d..70dcbe758e 100644 --- a/lib/cfilters.h +++ b/lib/cfilters.h @@ -197,10 +197,6 @@ void Curl_cf_def_destroy_this(struct Curl_cfilter *cf, /* Default implementations for the type functions, implementing pass-through * the filter chain. */ -void Curl_cf_def_close(struct Curl_cfilter *cf, struct Curl_easy *data); -CURLcode Curl_cf_def_connect(struct Curl_cfilter *cf, - struct Curl_easy *data, - bool blocking, bool *done); void Curl_cf_def_get_host(struct Curl_cfilter *cf, struct Curl_easy *data, const char **phost, const char **pdisplay_host, int *pport); @@ -286,8 +282,6 @@ void Curl_conn_cf_close(struct Curl_cfilter *cf, struct Curl_easy *data); int Curl_conn_cf_get_select_socks(struct Curl_cfilter *cf, struct Curl_easy *data, curl_socket_t *socks); -bool Curl_conn_cf_data_pending(struct Curl_cfilter *cf, - const struct Curl_easy *data); ssize_t Curl_conn_cf_send(struct Curl_cfilter *cf, struct Curl_easy *data, const void *buf, size_t len, CURLcode *err); ssize_t Curl_conn_cf_recv(struct Curl_cfilter *cf, struct Curl_easy *data, @@ -447,12 +441,6 @@ CURLcode Curl_conn_ev_data_pause(struct Curl_easy *data, bool do_pause); void Curl_conn_ev_update_info(struct Curl_easy *data, struct connectdata *conn); -/** - * Update connection statistics - */ -void Curl_conn_report_connect_stats(struct Curl_easy *data, - struct connectdata *conn); - /** * Check if FIRSTSOCKET's cfilter chain deems connection alive. */ @@ -466,6 +454,7 @@ CURLcode Curl_conn_keep_alive(struct Curl_easy *data, struct connectdata *conn, int sockindex); +void Curl_cf_def_close(struct Curl_cfilter *cf, struct Curl_easy *data); void Curl_conn_get_host(struct Curl_easy *data, int sockindex, const char **phost, const char **pdisplay_host, int *pport); diff --git a/lib/connect.c b/lib/connect.c index 78446bdd5d..ed5512138e 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -1060,12 +1060,23 @@ struct Curl_cftype Curl_cft_happy_eyeballs = { cf_he_query, }; -CURLcode Curl_cf_happy_eyeballs_create(struct Curl_cfilter **pcf, - struct Curl_easy *data, - struct connectdata *conn, - cf_ip_connect_create *cf_create, - const struct Curl_dns_entry *remotehost, - int transport) +/** + * Create a happy eyeball connection filter that uses the, once resolved, + * address information to connect on ip families based on connection + * configuration. + * @param pcf output, the created cfilter + * @param data easy handle used in creation + * @param conn connection the filter is created for + * @param cf_create method to create the sub-filters performing the + * actual connects. + */ +static CURLcode +cf_happy_eyeballs_create(struct Curl_cfilter **pcf, + struct Curl_easy *data, + struct connectdata *conn, + cf_ip_connect_create *cf_create, + const struct Curl_dns_entry *remotehost, + int transport) { struct cf_he_ctx *ctx = NULL; CURLcode result; @@ -1124,20 +1135,6 @@ static cf_ip_connect_create *get_cf_create(int transport) return NULL; } -#ifdef DEBUGBUILD -void Curl_debug_set_transport_provider(int transport, - cf_ip_connect_create *cf_create) -{ - size_t i; - for(i = 0; i < ARRAYSIZE(transport_providers); ++i) { - if(transport == transport_providers[i].transport) { - transport_providers[i].cf_create = cf_create; - return; - } - } -} -#endif /* DEBUGBUILD */ - static CURLcode cf_he_insert_after(struct Curl_cfilter *cf_at, struct Curl_easy *data, const struct Curl_dns_entry *remotehost, @@ -1154,9 +1151,9 @@ static CURLcode cf_he_insert_after(struct Curl_cfilter *cf_at, DEBUGF(LOG_CF(data, cf_at, "unsupported transport type %d", transport)); return CURLE_UNSUPPORTED_PROTOCOL; } - result = Curl_cf_happy_eyeballs_create(&cf, data, cf_at->conn, - cf_create, remotehost, - transport); + result = cf_happy_eyeballs_create(&cf, data, cf_at->conn, + cf_create, remotehost, + transport); if(result) return result; @@ -1359,12 +1356,12 @@ out: return result; } -CURLcode Curl_cf_setup_add(struct Curl_easy *data, - struct connectdata *conn, - int sockindex, - const struct Curl_dns_entry *remotehost, - int transport, - int ssl_mode) +static CURLcode cf_setup_add(struct Curl_easy *data, + struct connectdata *conn, + int sockindex, + const struct Curl_dns_entry *remotehost, + int transport, + int ssl_mode) { struct Curl_cfilter *cf; CURLcode result = CURLE_OK; @@ -1378,6 +1375,21 @@ out: return result; } +#ifdef DEBUGBUILD +/* used by unit2600.c */ +void Curl_debug_set_transport_provider(int transport, + cf_ip_connect_create *cf_create) +{ + size_t i; + for(i = 0; i < ARRAYSIZE(transport_providers); ++i) { + if(transport == transport_providers[i].transport) { + transport_providers[i].cf_create = cf_create; + return; + } + } +} +#endif /* DEBUGBUILD */ + CURLcode Curl_cf_setup_insert_after(struct Curl_cfilter *cf_at, struct Curl_easy *data, const struct Curl_dns_entry *remotehost, @@ -1419,8 +1431,8 @@ CURLcode Curl_conn_setup(struct Curl_easy *data, /* Still no cfilter set, apply default. */ if(!conn->cfilter[sockindex]) { - result = Curl_cf_setup_add(data, conn, sockindex, remotehost, - conn->transport, ssl_mode); + result = cf_setup_add(data, conn, sockindex, remotehost, + conn->transport, ssl_mode); if(result) goto out; } diff --git a/lib/connect.h b/lib/connect.h index e4fa10c4cb..58264bdba4 100644 --- a/lib/connect.h +++ b/lib/connect.h @@ -104,31 +104,6 @@ typedef CURLcode cf_ip_connect_create(struct Curl_cfilter **pcf, const struct Curl_addrinfo *ai, int transport); -/** - * Create a happy eyeball connection filter that uses the, once resolved, - * address information to connect on ip families based on connection - * configuration. - * @param pcf output, the created cfilter - * @param data easy handle used in creation - * @param conn connection the filter is created for - * @param cf_create method to create the sub-filters performing the - * actual connects. - */ -CURLcode -Curl_cf_happy_eyeballs_create(struct Curl_cfilter **pcf, - struct Curl_easy *data, - struct connectdata *conn, - cf_ip_connect_create *cf_create, - const struct Curl_dns_entry *remotehost, - int transport); - -CURLcode Curl_cf_setup_add(struct Curl_easy *data, - struct connectdata *conn, - int sockindex, - const struct Curl_dns_entry *remotehost, - int transport, - int ssl_mode); - CURLcode Curl_cf_setup_insert_after(struct Curl_cfilter *cf_at, struct Curl_easy *data, const struct Curl_dns_entry *remotehost, diff --git a/lib/dynhds.c b/lib/dynhds.c index b325e00608..007dfc588c 100644 --- a/lib/dynhds.c +++ b/lib/dynhds.c @@ -158,17 +158,6 @@ struct dynhds_entry *Curl_dynhds_cget(struct dynhds *dynhds, const char *name) return Curl_dynhds_get(dynhds, name, strlen(name)); } -bool Curl_dynhds_contains(struct dynhds *dynhds, - const char *name, size_t namelen) -{ - return !!Curl_dynhds_get(dynhds, name, namelen); -} - -bool Curl_dynhds_ccontains(struct dynhds *dynhds, const char *name) -{ - return Curl_dynhds_contains(dynhds, name, strlen(name)); -} - CURLcode Curl_dynhds_add(struct dynhds *dynhds, const char *name, size_t namelen, const char *value, size_t valuelen) @@ -221,20 +210,6 @@ CURLcode Curl_dynhds_cadd(struct dynhds *dynhds, return Curl_dynhds_add(dynhds, name, strlen(name), value, strlen(value)); } -CURLcode Curl_dynhds_set(struct dynhds *dynhds, - const char *name, size_t namelen, - const char *value, size_t valuelen) -{ - Curl_dynhds_remove(dynhds, name, namelen); - return Curl_dynhds_add(dynhds, name, namelen, value, valuelen); -} - -CURLcode Curl_dynhds_cset(struct dynhds *dynhds, - const char *name, const char *value) -{ - return Curl_dynhds_set(dynhds, name, strlen(name), value, strlen(value)); -} - CURLcode Curl_dynhds_h1_add_line(struct dynhds *dynhds, const char *line, size_t line_len) { @@ -296,6 +271,20 @@ CURLcode Curl_dynhds_h1_cadd_line(struct dynhds *dynhds, const char *line) return Curl_dynhds_h1_add_line(dynhds, line, line? strlen(line) : 0); } +#ifdef DEBUGBUILD +/* used by unit2602.c */ + +bool Curl_dynhds_contains(struct dynhds *dynhds, + const char *name, size_t namelen) +{ + return !!Curl_dynhds_get(dynhds, name, namelen); +} + +bool Curl_dynhds_ccontains(struct dynhds *dynhds, const char *name) +{ + return Curl_dynhds_contains(dynhds, name, strlen(name)); +} + size_t Curl_dynhds_count_name(struct dynhds *dynhds, const char *name, size_t namelen) { @@ -305,7 +294,7 @@ size_t Curl_dynhds_count_name(struct dynhds *dynhds, for(i = 0; i < dynhds->hds_len; ++i) { if((namelen == dynhds->hds[i]->namelen) && strncasecompare(name, dynhds->hds[i]->name, namelen)) - ++n; + ++n; } } return n; @@ -316,6 +305,14 @@ size_t Curl_dynhds_ccount_name(struct dynhds *dynhds, const char *name) return Curl_dynhds_count_name(dynhds, name, strlen(name)); } +CURLcode Curl_dynhds_set(struct dynhds *dynhds, + const char *name, size_t namelen, + const char *value, size_t valuelen) +{ + Curl_dynhds_remove(dynhds, name, namelen); + return Curl_dynhds_add(dynhds, name, namelen, value, valuelen); +} + size_t Curl_dynhds_remove(struct dynhds *dynhds, const char *name, size_t namelen) { @@ -365,3 +362,5 @@ CURLcode Curl_dynhds_h1_dprint(struct dynhds *dynhds, struct dynbuf *dbuf) return result; } + +#endif diff --git a/lib/dynhds.h b/lib/dynhds.h index 777baa58aa..8a053480e9 100644 --- a/lib/dynhds.h +++ b/lib/dynhds.h @@ -137,6 +137,7 @@ size_t Curl_dynhds_remove(struct dynhds *dynhds, const char *name, size_t namelen); size_t Curl_dynhds_cremove(struct dynhds *dynhds, const char *name); + /** * Set the give header name and value, replacing any entries with * the same name. The header is added at the end of all (remaining) @@ -145,6 +146,7 @@ size_t Curl_dynhds_cremove(struct dynhds *dynhds, const char *name); CURLcode Curl_dynhds_set(struct dynhds *dynhds, const char *name, size_t namelen, const char *value, size_t valuelen); + CURLcode Curl_dynhds_cset(struct dynhds *dynhds, const char *name, const char *value); diff --git a/lib/hostip.c b/lib/hostip.c index 974884b2e3..d721403b72 100644 --- a/lib/hostip.c +++ b/lib/hostip.c @@ -128,7 +128,7 @@ static void freednsentry(void *freethis); /* * Return # of addresses in a Curl_addrinfo struct */ -int Curl_num_addresses(const struct Curl_addrinfo *addr) +static int num_addresses(const struct Curl_addrinfo *addr) { int i = 0; while(addr) { @@ -410,7 +410,7 @@ UNITTEST CURLcode Curl_shuffle_addr(struct Curl_easy *data, struct Curl_addrinfo **addr) { CURLcode result = CURLE_OK; - const int num_addrs = Curl_num_addresses(*addr); + const int num_addrs = num_addresses(*addr); if(num_addrs > 1) { struct Curl_addrinfo **nodes; diff --git a/lib/hostip.h b/lib/hostip.h index 0dd19e87cc..06d0867277 100644 --- a/lib/hostip.h +++ b/lib/hostip.h @@ -132,9 +132,6 @@ void Curl_init_dnscache(struct Curl_hash *hash, int hashsize); /* prune old entries from the DNS cache */ void Curl_hostcache_prune(struct Curl_easy *data); -/* Return # of addresses in a Curl_addrinfo struct */ -int Curl_num_addresses(const struct Curl_addrinfo *addr); - /* IPv4 threadsafe resolve function used for synch and asynch builds */ struct Curl_addrinfo *Curl_ipv4_resolve_r(const char *hostname, int port); diff --git a/lib/http2.c b/lib/http2.c index febd8f1ffe..224424bf62 100644 --- a/lib/http2.c +++ b/lib/http2.c @@ -2465,7 +2465,8 @@ out: return result; } -bool Curl_cf_is_http2(struct Curl_cfilter *cf, const struct Curl_easy *data) +static bool Curl_cf_is_http2(struct Curl_cfilter *cf, + const struct Curl_easy *data) { (void)data; for(; cf; cf = cf->next) { diff --git a/lib/http2.h b/lib/http2.h index 562c05c999..80e183480a 100644 --- a/lib/http2.h +++ b/lib/http2.h @@ -47,8 +47,6 @@ bool Curl_h2_http_1_1_error(struct Curl_easy *data); bool Curl_conn_is_http2(const struct Curl_easy *data, const struct connectdata *conn, int sockindex); -bool Curl_cf_is_http2(struct Curl_cfilter *cf, const struct Curl_easy *data); - bool Curl_http2_may_switch(struct Curl_easy *data, struct connectdata *conn, int sockindex); diff --git a/lib/socks.c b/lib/socks.c index def6f0f755..53d798a64c 100644 --- a/lib/socks.c +++ b/lib/socks.c @@ -1238,19 +1238,6 @@ struct Curl_cftype Curl_cft_socks_proxy = { Curl_cf_def_query, }; -CURLcode Curl_conn_socks_proxy_add(struct Curl_easy *data, - struct connectdata *conn, - int sockindex) -{ - struct Curl_cfilter *cf; - CURLcode result; - - result = Curl_cf_create(&cf, &Curl_cft_socks_proxy, NULL); - if(!result) - Curl_conn_cf_add(data, conn, sockindex, cf); - return result; -} - CURLcode Curl_cf_socks_proxy_insert_after(struct Curl_cfilter *cf_at, struct Curl_easy *data) { diff --git a/lib/socks.h b/lib/socks.h index ba5b54a7bd..a3adcc6e91 100644 --- a/lib/socks.h +++ b/lib/socks.h @@ -51,10 +51,6 @@ CURLcode Curl_SOCKS5_gssapi_negotiate(struct Curl_cfilter *cf, struct Curl_easy *data); #endif -CURLcode Curl_conn_socks_proxy_add(struct Curl_easy *data, - struct connectdata *conn, - int sockindex); - CURLcode Curl_cf_socks_proxy_insert_after(struct Curl_cfilter *cf_at, struct Curl_easy *data); diff --git a/lib/url.c b/lib/url.c index b37d13f8f5..0fb6268341 100644 --- a/lib/url.c +++ b/lib/url.c @@ -129,7 +129,11 @@ #define ARRAYSIZE(A) (sizeof(A)/sizeof((A)[0])) #endif -static void conn_free(struct Curl_easy *data, struct connectdata *conn); +#ifdef USE_NGHTTP2 +static void data_priority_cleanup(struct Curl_easy *data); +#else +#define data_priority_cleanup(x) +#endif /* Some parts of the code (e.g. chunked encoding) assume this buffer has at * more than just a few bytes to play with. Don't let it become too small or @@ -420,7 +424,7 @@ CURLcode Curl_close(struct Curl_easy **datap) Curl_resolver_cancel(data); Curl_resolver_cleanup(data->state.async.resolver); - Curl_data_priority_cleanup(data); + data_priority_cleanup(data); /* No longer a dirty share, if it exists */ if(data->share) { @@ -4027,9 +4031,9 @@ CURLcode Curl_data_priority_add_child(struct Curl_easy *parent, #endif /* USE_NGHTTP2 */ -void Curl_data_priority_cleanup(struct Curl_easy *data) -{ #ifdef USE_NGHTTP2 +static void data_priority_cleanup(struct Curl_easy *data) +{ while(data->set.priority.children) { struct Curl_easy *tmp = data->set.priority.children->data; priority_remove_child(data, tmp); @@ -4039,9 +4043,8 @@ void Curl_data_priority_cleanup(struct Curl_easy *data) if(data->set.priority.parent) priority_remove_child(data->set.priority.parent, data); -#endif - (void)data; } +#endif void Curl_data_priority_clear_state(struct Curl_easy *data) { diff --git a/lib/url.h b/lib/url.h index 3b58df403e..f6a5b25737 100644 --- a/lib/url.h +++ b/lib/url.h @@ -60,10 +60,8 @@ void Curl_verboseconnect(struct Curl_easy *data, struct connectdata *conn); #endif #if defined(USE_HTTP2) || defined(USE_HTTP3) -void Curl_data_priority_cleanup(struct Curl_easy *data); void Curl_data_priority_clear_state(struct Curl_easy *data); #else -#define Curl_data_priority_cleanup(x) #define Curl_data_priority_clear_state(x) #endif /* !(defined(USE_HTTP2) || defined(USE_HTTP3)) */ diff --git a/lib/vquic/vquic.c b/lib/vquic/vquic.c index 19ee3f4d37..f850029a62 100644 --- a/lib/vquic/vquic.c +++ b/lib/vquic/vquic.c @@ -224,11 +224,11 @@ static CURLcode send_packet_no_gso(struct Curl_cfilter *cf, return CURLE_OK; } -CURLcode vquic_send_packets(struct Curl_cfilter *cf, - struct Curl_easy *data, - struct cf_quic_ctx *qctx, - const uint8_t *pkt, size_t pktlen, size_t gsolen, - size_t *psent) +static CURLcode vquic_send_packets(struct Curl_cfilter *cf, + struct Curl_easy *data, + struct cf_quic_ctx *qctx, + const uint8_t *pkt, size_t pktlen, + size_t gsolen, size_t *psent) { if(qctx->no_gso && pktlen > gsolen) { return send_packet_no_gso(cf, data, qctx, pkt, pktlen, gsolen, psent); diff --git a/lib/vquic/vquic_int.h b/lib/vquic/vquic_int.h index f0129e19d5..8e08784e7d 100644 --- a/lib/vquic/vquic_int.h +++ b/lib/vquic/vquic_int.h @@ -47,12 +47,6 @@ struct cf_quic_ctx { CURLcode vquic_ctx_init(struct cf_quic_ctx *qctx); void vquic_ctx_free(struct cf_quic_ctx *qctx); -CURLcode vquic_send_packets(struct Curl_cfilter *cf, - struct Curl_easy *data, - struct cf_quic_ctx *qctx, - const uint8_t *pkt, size_t pktlen, size_t gsolen, - size_t *psent); - void vquic_push_blocked_pkt(struct Curl_cfilter *cf, struct cf_quic_ctx *qctx, const uint8_t *pkt, size_t pktlen, size_t gsolen); diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c index 32334016bb..a4ff7d61a6 100644 --- a/lib/vtls/vtls.c +++ b/lib/vtls/vtls.c @@ -781,20 +781,6 @@ CURLcode Curl_ssl_push_certinfo_len(struct Curl_easy *data, return result; } -/* - * This is a convenience function for push_certinfo_len that takes a zero - * terminated value. - */ -CURLcode Curl_ssl_push_certinfo(struct Curl_easy *data, - int certnum, - const char *label, - const char *value) -{ - size_t valuelen = strlen(value); - - return Curl_ssl_push_certinfo_len(data, certnum, label, value, valuelen); -} - CURLcode Curl_ssl_random(struct Curl_easy *data, unsigned char *entropy, size_t length) @@ -1834,19 +1820,6 @@ out: return result; } -CURLcode Curl_ssl_cfilter_proxy_add(struct Curl_easy *data, - struct connectdata *conn, - int sockindex) -{ - struct Curl_cfilter *cf; - CURLcode result; - - result = cf_ssl_proxy_create(&cf, data, conn); - if(!result) - Curl_conn_cf_add(data, conn, sockindex, cf); - return result; -} - CURLcode Curl_cf_ssl_proxy_insert_after(struct Curl_cfilter *cf_at, struct Curl_easy *data) { @@ -1960,19 +1933,6 @@ Curl_ssl_cf_get_primary_config(struct Curl_cfilter *cf) #endif } -struct ssl_primary_config * -Curl_ssl_get_primary_config(struct Curl_easy *data, - struct connectdata *conn, - int sockindex) -{ - struct Curl_cfilter *cf; - - (void)data; - DEBUGASSERT(conn); - cf = get_ssl_cf_engaged(conn, sockindex); - return cf? Curl_ssl_cf_get_primary_config(cf) : NULL; -} - struct Curl_cfilter *Curl_ssl_cf_get_ssl(struct Curl_cfilter *cf) { for(; cf; cf = cf->next) { diff --git a/lib/vtls/vtls.h b/lib/vtls/vtls.h index f24dca15ba..3516247301 100644 --- a/lib/vtls/vtls.h +++ b/lib/vtls/vtls.h @@ -155,9 +155,6 @@ CURLcode Curl_ssl_cfilter_remove(struct Curl_easy *data, int sockindex); #ifndef CURL_DISABLE_PROXY -CURLcode Curl_ssl_cfilter_proxy_add(struct Curl_easy *data, - struct connectdata *conn, - int sockindex); CURLcode Curl_cf_ssl_proxy_insert_after(struct Curl_cfilter *cf_at, struct Curl_easy *data); #endif /* !CURL_DISABLE_PROXY */ @@ -174,20 +171,6 @@ CURLcode Curl_cf_ssl_proxy_insert_after(struct Curl_cfilter *cf_at, struct ssl_config_data *Curl_ssl_get_config(struct Curl_easy *data, int sockindex); -/** - * Get the primary SSL configuration from the connection. - * This returns NULL if no SSL is configured. - * Otherwise it returns the config of the first (highest) one that is - * either connected, in handshake or about to start - * (e.g. all filters below it are connected). If SSL filters are present, - * but neither can start operating, return the config of the lowest one - * that will first come into effect when connecting. - */ -struct ssl_primary_config * -Curl_ssl_get_primary_config(struct Curl_easy *data, - struct connectdata *conn, - int sockindex); - /** * True iff the underlying SSL implementation supports the option. * Option is one of the defined SSLSUPP_* values. @@ -226,7 +209,6 @@ extern struct Curl_cftype Curl_cft_ssl_proxy; #define Curl_ssl_get_internals(a,b,c,d) NULL #define Curl_ssl_supports(a,b) FALSE #define Curl_ssl_cfilter_add(a,b,c) CURLE_NOT_BUILT_IN -#define Curl_ssl_cfilter_proxy_add(a,b,c) CURLE_NOT_BUILT_IN #define Curl_ssl_get_config(a,b) NULL #define Curl_ssl_cfilter_remove(a,b) CURLE_OK #endif diff --git a/lib/vtls/x509asn1.c b/lib/vtls/x509asn1.c index 83d0fbb540..acf8bdb2ab 100644 --- a/lib/vtls/x509asn1.c +++ b/lib/vtls/x509asn1.c @@ -918,6 +918,20 @@ static const char *dumpAlgo(struct Curl_asn1Element *param, return OID2str(oid.beg, oid.end, TRUE); } +/* + * This is a convenience function for push_certinfo_len that takes a zero + * terminated value. + */ +static CURLcode ssl_push_certinfo(struct Curl_easy *data, + int certnum, + const char *label, + const char *value) +{ + size_t valuelen = strlen(value); + + return Curl_ssl_push_certinfo_len(data, certnum, label, value, valuelen); +} + /* return 0 on success, 1 on error */ static int do_pubkey_field(struct Curl_easy *data, int certnum, const char *label, struct Curl_asn1Element *elem) @@ -930,7 +944,7 @@ static int do_pubkey_field(struct Curl_easy *data, int certnum, output = ASN1tostr(elem, 0); if(output) { if(data->set.ssl.certinfo) - result = Curl_ssl_push_certinfo(data, certnum, label, output); + result = ssl_push_certinfo(data, certnum, label, output); if(!certnum && !result) infof(data, " %s: %s", label, output); free((char *) output); @@ -960,7 +974,7 @@ static int do_pubkey(struct Curl_easy *data, int certnum, if(data->set.ssl.certinfo) { char q[sizeof(len) * 8 / 3 + 1]; (void)msnprintf(q, sizeof(q), "%lu", len); - if(Curl_ssl_push_certinfo(data, certnum, "ECC Public Key", q)) + if(ssl_push_certinfo(data, certnum, "ECC Public Key", q)) return 1; } return do_pubkey_field(data, certnum, "ecPublicKey", pubkey); @@ -994,7 +1008,7 @@ static int do_pubkey(struct Curl_easy *data, int certnum, if(data->set.ssl.certinfo) { char r[sizeof(len) * 8 / 3 + 1]; msnprintf(r, sizeof(r), "%lu", len); - if(Curl_ssl_push_certinfo(data, certnum, "RSA Public Key", r)) + if(ssl_push_certinfo(data, certnum, "RSA Public Key", r)) return 1; } /* Generate coefficients. */ @@ -1092,7 +1106,7 @@ CURLcode Curl_extract_certinfo(struct Curl_easy *data, if(!ccp) return CURLE_OUT_OF_MEMORY; if(data->set.ssl.certinfo) { - result = Curl_ssl_push_certinfo(data, certnum, "Subject", ccp); + result = ssl_push_certinfo(data, certnum, "Subject", ccp); if(result) return result; } @@ -1105,7 +1119,7 @@ CURLcode Curl_extract_certinfo(struct Curl_easy *data, if(!ccp) return CURLE_OUT_OF_MEMORY; if(data->set.ssl.certinfo) { - result = Curl_ssl_push_certinfo(data, certnum, "Issuer", ccp); + result = ssl_push_certinfo(data, certnum, "Issuer", ccp); } if(!certnum) infof(data, " Issuer: %s", ccp); @@ -1121,7 +1135,7 @@ CURLcode Curl_extract_certinfo(struct Curl_easy *data, ccp = curl_maprintf("%x", version); if(!ccp) return CURLE_OUT_OF_MEMORY; - result = Curl_ssl_push_certinfo(data, certnum, "Version", ccp); + result = ssl_push_certinfo(data, certnum, "Version", ccp); free((char *) ccp); if(result) return result; @@ -1134,7 +1148,7 @@ CURLcode Curl_extract_certinfo(struct Curl_easy *data, if(!ccp) return CURLE_OUT_OF_MEMORY; if(data->set.ssl.certinfo) - result = Curl_ssl_push_certinfo(data, certnum, "Serial Number", ccp); + result = ssl_push_certinfo(data, certnum, "Serial Number", ccp); if(!certnum) infof(data, " Serial Number: %s", ccp); free((char *) ccp); @@ -1147,7 +1161,7 @@ CURLcode Curl_extract_certinfo(struct Curl_easy *data, if(!ccp) return CURLE_OUT_OF_MEMORY; if(data->set.ssl.certinfo) - result = Curl_ssl_push_certinfo(data, certnum, "Signature Algorithm", ccp); + result = ssl_push_certinfo(data, certnum, "Signature Algorithm", ccp); if(!certnum) infof(data, " Signature Algorithm: %s", ccp); free((char *) ccp); @@ -1159,7 +1173,7 @@ CURLcode Curl_extract_certinfo(struct Curl_easy *data, if(!ccp) return CURLE_OUT_OF_MEMORY; if(data->set.ssl.certinfo) - result = Curl_ssl_push_certinfo(data, certnum, "Start Date", ccp); + result = ssl_push_certinfo(data, certnum, "Start Date", ccp); if(!certnum) infof(data, " Start Date: %s", ccp); free((char *) ccp); @@ -1171,7 +1185,7 @@ CURLcode Curl_extract_certinfo(struct Curl_easy *data, if(!ccp) return CURLE_OUT_OF_MEMORY; if(data->set.ssl.certinfo) - result = Curl_ssl_push_certinfo(data, certnum, "Expire Date", ccp); + result = ssl_push_certinfo(data, certnum, "Expire Date", ccp); if(!certnum) infof(data, " Expire Date: %s", ccp); free((char *) ccp); @@ -1184,7 +1198,7 @@ CURLcode Curl_extract_certinfo(struct Curl_easy *data, if(!ccp) return CURLE_OUT_OF_MEMORY; if(data->set.ssl.certinfo) - result = Curl_ssl_push_certinfo(data, certnum, "Public Key Algorithm", + result = ssl_push_certinfo(data, certnum, "Public Key Algorithm", ccp); if(!result) { int ret; @@ -1203,7 +1217,7 @@ CURLcode Curl_extract_certinfo(struct Curl_easy *data, if(!ccp) return CURLE_OUT_OF_MEMORY; if(data->set.ssl.certinfo) - result = Curl_ssl_push_certinfo(data, certnum, "Signature", ccp); + result = ssl_push_certinfo(data, certnum, "Signature", ccp); if(!certnum) infof(data, " Signature: %s", ccp); free((char *) ccp); @@ -1238,7 +1252,7 @@ CURLcode Curl_extract_certinfo(struct Curl_easy *data, cp2[i] = '\0'; free(cp1); if(data->set.ssl.certinfo) - result = Curl_ssl_push_certinfo(data, certnum, "Cert", cp2); + result = ssl_push_certinfo(data, certnum, "Cert", cp2); if(!certnum) infof(data, "%s", cp2); free(cp2); -- 2.47.3