]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
cf-socket: give information when unable to open socket
authorStefan Eissing <stefan@eissing.org>
Mon, 20 Oct 2025 09:51:20 +0000 (11:51 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Mon, 20 Oct 2025 13:21:47 +0000 (15:21 +0200)
Give ERRNO explanation in a failf() when unable to open a socket.
Helps in finding out what the issue preventing your curl to work
really is. Just had a wrong ulimit after a sys update.

Closes #19158

lib/cf-socket.c

index 4a6bdb62445e4da540c0dd172da277ff0ae8bf7b..92fe433a69b11ff1cbd779f33c3fe6464949307a 100644 (file)
@@ -344,6 +344,8 @@ static CURLcode socket_open(struct Curl_easy *data,
                             struct Curl_sockaddr_ex *addr,
                             curl_socket_t *sockfd)
 {
+  char errbuf[STRERROR_LEN];
+
   DEBUGASSERT(data);
   DEBUGASSERT(data->conn);
   if(data->set.fopensocket) {
@@ -367,13 +369,15 @@ static CURLcode socket_open(struct Curl_easy *data,
     *sockfd = CURL_SOCKET(addr->family, addr->socktype, addr->protocol);
   }
 
-  if(*sockfd == CURL_SOCKET_BAD)
+  if(*sockfd == CURL_SOCKET_BAD) {
     /* no socket, no connection */
+    failf(data, "failed to open socket: %s",
+          curlx_strerror(SOCKERRNO, errbuf, sizeof(errbuf)));
     return CURLE_COULDNT_CONNECT;
+  }
 
 #ifdef HAVE_FCNTL
   if(fcntl(*sockfd, F_SETFD, FD_CLOEXEC) < 0) {
-    char errbuf[STRERROR_LEN];
     failf(data, "fcntl set CLOEXEC: %s",
           curlx_strerror(SOCKERRNO, errbuf, sizeof(errbuf)));
     close(*sockfd);