cfilters: make Curl_conn_get_socket simpler

Since it is only used for the first socket anyway, simplify the
function.

Closes #18219
This commit is contained in:
Stefan Eissing 2025-08-07 14:18:59 +02:00 committed by Daniel Stenberg
parent fd9429cc29
commit 10e60e825c
No known key found for this signature in database
GPG key ID: 5CC908FDB71E12C2
4 changed files with 13 additions and 12 deletions

View file

@ -910,18 +910,19 @@ CURLcode Curl_conn_cf_get_ip_info(struct Curl_cfilter *cf,
return result;
}
curl_socket_t Curl_conn_get_socket(struct Curl_easy *data, int sockindex)
curl_socket_t Curl_conn_get_first_socket(struct Curl_easy *data)
{
struct Curl_cfilter *cf;
cf = (data->conn && CONN_SOCK_IDX_VALID(sockindex)) ?
data->conn->cfilter[sockindex] : NULL;
if(!data->conn)
return CURL_SOCKET_BAD;
cf = data->conn->cfilter[FIRSTSOCKET];
/* if the top filter has not connected, ask it (and its sub-filters)
* for the socket. Otherwise conn->sock[sockindex] should have it.
*/
* for the socket. Otherwise conn->sock[sockindex] should have it. */
if(cf && !cf->connected)
return Curl_conn_cf_get_socket(cf, data);
return data->conn ? data->conn->sock[sockindex] : CURL_SOCKET_BAD;
return data->conn->sock[FIRSTSOCKET];
}
const struct Curl_sockaddr_ex *

View file

@ -460,10 +460,11 @@ bool Curl_conn_needs_flush(struct Curl_easy *data, int sockindex);
CURLcode Curl_conn_flush(struct Curl_easy *data, int sockindex);
/**
* Return the socket used on data's connection for the index.
* Return the socket used on data's connection for FIRSTSOCKET,
* querying filters if the whole chain has not connected yet.
* Returns CURL_SOCKET_BAD if not available.
*/
curl_socket_t Curl_conn_get_socket(struct Curl_easy *data, int sockindex);
curl_socket_t Curl_conn_get_first_socket(struct Curl_easy *data);
/* Return a pointer to the connected socket address or NULL. */
const struct Curl_sockaddr_ex *

View file

@ -1528,8 +1528,7 @@ CURLcode Curl_http_do_pollset(struct Curl_easy *data,
struct easy_pollset *ps)
{
/* write mode */
curl_socket_t sock = Curl_conn_get_socket(data, FIRSTSOCKET);
return Curl_pollset_add_out(data, ps, sock);
return Curl_pollset_add_out(data, ps, data->conn->sock[FIRSTSOCKET]);
}
/*

View file

@ -912,7 +912,7 @@ static CURLcode mstate_connecting_pollset(struct Curl_easy *data,
struct easy_pollset *ps)
{
if(data->conn) {
curl_socket_t sockfd = Curl_conn_get_socket(data, FIRSTSOCKET);
curl_socket_t sockfd = Curl_conn_get_first_socket(data);
if(sockfd != CURL_SOCKET_BAD) {
/* Default is to wait to something from the server */
return Curl_pollset_change(data, ps, sockfd, CURL_POLL_IN, 0);
@ -928,7 +928,7 @@ static CURLcode mstate_protocol_pollset(struct Curl_easy *data,
curl_socket_t sockfd;
if(data->conn->handler->proto_pollset)
return data->conn->handler->proto_pollset(data, ps);
sockfd = Curl_conn_get_socket(data, FIRSTSOCKET);
sockfd = data->conn->sock[FIRSTSOCKET];
if(sockfd != CURL_SOCKET_BAD) {
/* Default is to wait to something from the server */
return Curl_pollset_change(data, ps, sockfd, CURL_POLL_IN, 0);