]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cfilters: make Curl_conn_get_socket simpler
authorStefan Eissing <stefan@eissing.org>
Thu, 7 Aug 2025 12:18:59 +0000 (14:18 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 7 Aug 2025 12:44:52 +0000 (14:44 +0200)
Since it is only used for the first socket anyway, simplify the
function.

Closes #18219

lib/cfilters.c
lib/cfilters.h
lib/http.c
lib/multi.c

index c3b40b0bc5934aa488b682f19854a5ba5d77dc37..efd2ac6f63d49797e5f8c7da69c3c3cdef671a46 100644 (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 *
index 458ce589372058df3e5bf0660fe90c538e31f33b..815b72a6e801deda86bdd30b5e847c6c36238b1f 100644 (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 *
index 972d9af23ea6a95503fcc3ce4a6ddb2822b56327..758ee50dea1f28811a8f9ac859d9ca50cb6ad619 100644 (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]);
 }
 
 /*
index cbecd6a7d564eff7109ad6b1f6b7f05b35a1a4e5..d38155cd9b3ea513ad5a2c9fb3a50183b48f5dbf 100644 (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);