From dbff3eec456d86386be4cebb89cbe4dfc21a06b6 Mon Sep 17 00:00:00 2001 From: Stefan Eissing Date: Mon, 20 Oct 2025 11:51:20 +0200 Subject: [PATCH] cf-socket: give information when unable to open socket 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 | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/cf-socket.c b/lib/cf-socket.c index 4a6bdb6244..92fe433a69 100644 --- a/lib/cf-socket.c +++ b/lib/cf-socket.c @@ -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); -- 2.47.3