socket: use name sockerr for socket error variables

Also:
- add comment explaining a `sockerr = errno` (vs. `SOCKERRNO`)
  assigment.

Closes #21998
This commit is contained in:
Viktor Szakats 2026-06-12 23:42:50 +02:00
parent fb83911aa6
commit fe2df80a5a
No known key found for this signature in database
15 changed files with 205 additions and 202 deletions

View file

@ -742,7 +742,7 @@ static int test_dnsd(int argc, const char **argv)
curl_socket_t sock = CURL_SOCKET_BAD;
int flag;
int rc;
int error;
int sockerr;
char errbuf[STRERROR_LEN];
int result = 0;
struct resp *resp;
@ -840,18 +840,18 @@ static int test_dnsd(int argc, const char **argv)
#endif
if(sock == CURL_SOCKET_BAD) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("Error creating socket (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
result = 1;
goto dnsd_cleanup;
}
flag = 1;
if(setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *)&flag, sizeof(flag))) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("setsockopt(SO_REUSEADDR) failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
result = 1;
goto dnsd_cleanup;
}
@ -875,9 +875,9 @@ static int test_dnsd(int argc, const char **argv)
}
#endif /* USE_IPV6 */
if(rc) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("Error binding socket on port %hu (%d) %s", port,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
result = 1;
goto dnsd_cleanup;
}
@ -897,9 +897,9 @@ static int test_dnsd(int argc, const char **argv)
la_size = sizeof(localaddr.sa6);
#endif
if(getsockname(sock, &localaddr.sa, &la_size) < 0) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("getsockname() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(sock);
goto dnsd_cleanup;
}

View file

@ -713,7 +713,7 @@ static bool mqttd_incoming(curl_socket_t listenfd)
do {
ssize_t rc;
int error = 0;
int sockerr = 0;
char errbuf[STRERROR_LEN];
curl_socket_t sockfd = listenfd;
int maxfd = (int)sockfd;
@ -732,20 +732,20 @@ static bool mqttd_incoming(curl_socket_t listenfd)
logmsg("signalled to die, exiting...");
return FALSE;
}
} while((rc == -1) && ((error = SOCKERRNO) == SOCKEINTR));
} while((rc == -1) && ((sockerr = SOCKERRNO) == SOCKEINTR));
if(rc < 0) {
logmsg("select() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
return FALSE;
}
if(FD_ISSET(sockfd, &fds_read)) {
curl_socket_t newfd = accept(sockfd, NULL, NULL);
if(newfd == CURL_SOCKET_BAD) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("accept() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
}
else {
logmsg("====> Client connect, fd %ld. "
@ -770,7 +770,7 @@ static int test_mqttd(int argc, const char *argv[])
int wrotepidfile = 0;
int wroteportfile = 0;
bool juggle_again;
int error;
int sockerr;
char errbuf[STRERROR_LEN];
int arg = 1;
@ -872,9 +872,9 @@ static int test_mqttd(int argc, const char *argv[])
sock = socket(socket_domain, SOCK_STREAM, 0);
if(sock == CURL_SOCKET_BAD) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("Error creating socket (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
goto mqttd_cleanup;
}

View file

@ -604,7 +604,7 @@ storerequest_cleanup:
/* return 0 on success, non-zero on failure */
static int rtspd_get_request(curl_socket_t sock, struct rtspd_httprequest *req)
{
int error;
int sockerr;
char errbuf[STRERROR_LEN];
int fail = 0;
int done_processing = 0;
@ -665,9 +665,9 @@ static int rtspd_get_request(curl_socket_t sock, struct rtspd_httprequest *req)
fail = 1;
}
else if(got < 0) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("recv() returned error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
fail = 1;
}
if(fail) {
@ -975,9 +975,9 @@ static int rtspd_send_doc(curl_socket_t sock, struct rtspd_httprequest *req)
break;
if(res) {
/* should not happen */
error = SOCKERRNO;
int sockerr = SOCKERRNO;
logmsg("curlx_wait_ms() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
break;
}
}
@ -1014,7 +1014,7 @@ static int test_rtspd(int argc, const char *argv[])
unsigned short port = 8999;
struct rtspd_httprequest req;
int rc;
int error;
int sockerr;
char errbuf[STRERROR_LEN];
int arg = 1;
@ -1118,17 +1118,17 @@ static int test_rtspd(int argc, const char *argv[])
#endif
if(sock == CURL_SOCKET_BAD) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("Error creating socket (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
goto server_cleanup;
}
flag = 1;
if(setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *)&flag, sizeof(flag))) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("setsockopt(SO_REUSEADDR) failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
goto server_cleanup;
}
@ -1151,9 +1151,9 @@ static int test_rtspd(int argc, const char *argv[])
}
#endif /* USE_IPV6 */
if(rc) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("Error binding socket on port %hu (%d) %s", port,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
goto server_cleanup;
}
@ -1172,9 +1172,9 @@ static int test_rtspd(int argc, const char *argv[])
la_size = sizeof(localaddr.sa6);
#endif
if(getsockname(sock, &localaddr.sa, &la_size) < 0) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("getsockname() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(sock);
goto server_cleanup;
}
@ -1205,9 +1205,9 @@ static int test_rtspd(int argc, const char *argv[])
/* start accepting connections */
rc = listen(sock, 5);
if(rc) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("listen() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
goto server_cleanup;
}
@ -1232,9 +1232,9 @@ static int test_rtspd(int argc, const char *argv[])
if(got_exit_signal)
break;
if(msgsock == CURL_SOCKET_BAD) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("MAJOR ERROR, accept() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
break;
}

View file

@ -928,7 +928,7 @@ static bool juggle(curl_socket_t *sockfdp,
curl_socket_t sockfd = CURL_SOCKET_BAD;
int maxfd = -99;
ssize_t rc;
int error = 0;
int sockerr = 0;
char errbuf[STRERROR_LEN];
unsigned char buffer[BUFFER_SIZE];
@ -1014,11 +1014,11 @@ static bool juggle(curl_socket_t *sockfdp,
logmsg("signalled to die, exiting...");
return FALSE;
}
} while((rc == -1) && ((error = SOCKERRNO) == SOCKEINTR));
} while((rc == -1) && ((sockerr = SOCKERRNO) == SOCKEINTR));
if(rc < 0) {
logmsg("select() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
return FALSE;
}
@ -1120,9 +1120,9 @@ static bool juggle(curl_socket_t *sockfdp,
client connecting. */
curl_socket_t newfd = accept(sockfd, NULL, NULL);
if(newfd == CURL_SOCKET_BAD) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("accept() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
}
else {
logmsg("====> Client connect");
@ -1174,7 +1174,7 @@ static int test_sockfilt(int argc, const char *argv[])
int wroteportfile = 0;
bool juggle_again;
int rc;
int error;
int sockerr;
char errbuf[STRERROR_LEN];
int arg = 1;
enum sockmode mode = PASSIVE_LISTEN; /* default */
@ -1293,9 +1293,9 @@ static int test_sockfilt(int argc, const char *argv[])
sock = socket(socket_domain, SOCK_STREAM, 0);
if(sock == CURL_SOCKET_BAD) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("Error creating socket (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
write_stdout("FAIL\n", 5);
goto sockfilt_cleanup;
}
@ -1331,9 +1331,9 @@ static int test_sockfilt(int argc, const char *argv[])
rc = 1;
}
if(rc) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("Error connecting to port %hu (%d) %s", server_connectport,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
write_stdout("FAIL\n", 5);
goto sockfilt_cleanup;
}

View file

@ -228,9 +228,9 @@ static curl_socket_t socksconnect(unsigned short connectport,
if(rc) {
char errbuf[STRERROR_LEN];
int error = SOCKERRNO;
int sockerr = SOCKERRNO;
logmsg("Failed connecting to %s:%hu (%d) %s", connectaddr, connectport,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
return CURL_SOCKET_BAD;
}
logmsg("Connected fine to %s:%d", connectaddr, connectport);
@ -636,7 +636,7 @@ static bool socksd_incoming(curl_socket_t listenfd)
do {
int i;
ssize_t rc;
int error = 0;
int sockerr = 0;
char errbuf[STRERROR_LEN];
curl_socket_t sockfd = listenfd;
int maxfd = (int)sockfd;
@ -668,20 +668,20 @@ static bool socksd_incoming(curl_socket_t listenfd)
logmsg("signalled to die, exiting...");
return FALSE;
}
} while((rc == -1) && ((error = SOCKERRNO) == SOCKEINTR));
} while((rc == -1) && ((sockerr = SOCKERRNO) == SOCKEINTR));
if(rc < 0) {
logmsg("select() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
return FALSE;
}
if((clients < 2) && FD_ISSET(sockfd, &fds_read)) {
curl_socket_t newfd = accept(sockfd, NULL, NULL);
if(newfd == CURL_SOCKET_BAD) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("accept() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
}
else {
curl_socket_t remotefd;
@ -732,7 +732,6 @@ static int test_socksd(int argc, const char *argv[])
int wrotepidfile = 0;
int wroteportfile = 0;
bool juggle_again;
int error;
char errbuf[STRERROR_LEN];
int arg = 1;
@ -866,9 +865,9 @@ static int test_socksd(int argc, const char *argv[])
sock = socket(socket_domain, SOCK_STREAM, 0);
if(sock == CURL_SOCKET_BAD) {
error = SOCKERRNO;
int sockerr = SOCKERRNO;
logmsg("Error creating socket (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
goto socks5_cleanup;
}
@ -919,7 +918,7 @@ socks5_cleanup:
#ifdef USE_UNIX_SOCKETS
if(unlink_socket && socket_domain == AF_UNIX && unix_socket) {
error = unlink(unix_socket);
int error = unlink(unix_socket);
logmsg("unlink(%s) = %d (%s)", unix_socket,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
}

View file

@ -1048,9 +1048,9 @@ retry:
res = curlx_wait_ms(250);
if(res) {
/* should not happen */
error = SOCKERRNO;
int sockerr = SOCKERRNO;
logmsg("curlx_wait_ms() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
break;
}
}
@ -1192,13 +1192,13 @@ static int sws_get_request(curl_socket_t sock, struct sws_httprequest *req)
}
else if(got < 0) {
char errbuf[STRERROR_LEN];
int error = SOCKERRNO;
if(SOCK_EAGAIN(error)) {
int sockerr = SOCKERRNO;
if(SOCK_EAGAIN(sockerr)) {
/* nothing to read at the moment */
return 0;
}
logmsg("recv() returned error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
fail = 1;
}
if(fail) {
@ -1246,7 +1246,7 @@ static curl_socket_t connect_to(const char *ipaddr, unsigned short port)
{
srvr_sockaddr_union_t serveraddr;
curl_socket_t serverfd;
int error;
int sockerr;
char errbuf[STRERROR_LEN];
int rc = 0;
const char *op_br = "";
@ -1266,9 +1266,9 @@ static curl_socket_t connect_to(const char *ipaddr, unsigned short port)
serverfd = socket(socket_domain, SOCK_STREAM, 0);
if(serverfd == CURL_SOCKET_BAD) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("Error creating socket for server connection (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
return CURL_SOCKET_BAD;
}
@ -1286,9 +1286,9 @@ static curl_socket_t connect_to(const char *ipaddr, unsigned short port)
* Windows has an internal retry logic that may lead to long
* timeouts if the peer is not listening. */
if(curlx_nonblock(serverfd, TRUE)) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("curlx_nonblock(TRUE) failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(serverfd);
return CURL_SOCKET_BAD;
}
@ -1333,8 +1333,8 @@ static curl_socket_t connect_to(const char *ipaddr, unsigned short port)
}
if(rc) {
error = SOCKERRNO;
if((error == SOCKEINPROGRESS) || SOCK_EAGAIN(error)) {
sockerr = SOCKERRNO;
if((sockerr == SOCKEINPROGRESS) || SOCK_EAGAIN(sockerr)) {
fd_set output;
struct timeval timeout = { 0 };
timeout.tv_sec = 1; /* 1000 ms */
@ -1346,13 +1346,13 @@ static curl_socket_t connect_to(const char *ipaddr, unsigned short port)
if(rc < 0 && SOCKERRNO != SOCKEINTR)
goto error;
else if(rc > 0) {
curl_socklen_t errSize = sizeof(error);
curl_socklen_t errSize = sizeof(sockerr);
if(getsockopt(serverfd, SOL_SOCKET, SO_ERROR,
(void *)&error, &errSize))
error = SOCKERRNO;
if((error == 0) || (SOCKEISCONN == error))
(void *)&sockerr, &errSize))
sockerr = SOCKERRNO;
if((sockerr == 0) || (SOCKEISCONN == sockerr))
goto success;
else if((error != SOCKEINPROGRESS) && !SOCK_EAGAIN(error))
else if((sockerr != SOCKEINPROGRESS) && !SOCK_EAGAIN(sockerr))
goto error;
}
else if(!rc) {
@ -1364,7 +1364,7 @@ static curl_socket_t connect_to(const char *ipaddr, unsigned short port)
}
error:
logmsg("Error connecting to server port %hu (%d) %s", port,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(serverfd);
return CURL_SOCKET_BAD;
}
@ -1373,9 +1373,9 @@ success:
op_br, ipaddr, cl_br, port);
if(curlx_nonblock(serverfd, FALSE)) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("curlx_nonblock(FALSE) failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(serverfd);
return CURL_SOCKET_BAD;
}
@ -1802,7 +1802,7 @@ static void http_upgrade(struct sws_httprequest *req)
static curl_socket_t accept_connection(curl_socket_t sock)
{
curl_socket_t msgsock = CURL_SOCKET_BAD;
int error;
int sockerr;
char errbuf[STRERROR_LEN];
int flag = 1;
@ -1820,20 +1820,20 @@ static curl_socket_t accept_connection(curl_socket_t sock)
}
if(msgsock == CURL_SOCKET_BAD) {
error = SOCKERRNO;
if(SOCK_EAGAIN(error)) {
sockerr = SOCKERRNO;
if(SOCK_EAGAIN(sockerr)) {
/* nothing to accept */
return 0;
}
logmsg("MAJOR ERROR, accept() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
return CURL_SOCKET_BAD;
}
if(curlx_nonblock(msgsock, TRUE)) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("curlx_nonblock failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(msgsock);
return CURL_SOCKET_BAD;
}
@ -1843,9 +1843,9 @@ static curl_socket_t accept_connection(curl_socket_t sock)
#endif
if(setsockopt(msgsock, SOL_SOCKET, SO_KEEPALIVE,
(void *)&flag, sizeof(flag))) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("setsockopt(SO_KEEPALIVE) failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(msgsock);
return CURL_SOCKET_BAD;
}
@ -1974,7 +1974,7 @@ static int test_sws(int argc, const char *argv[])
#endif
struct sws_httprequest *req = NULL;
int rc = 0;
int error;
int sockerr;
char errbuf[STRERROR_LEN];
int arg = 1;
const char *connecthost = "127.0.0.1";
@ -2146,9 +2146,9 @@ static int test_sws(int argc, const char *argv[])
num_sockets = 1;
if(sock == CURL_SOCKET_BAD) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("Error creating socket (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
goto sws_cleanup;
}
@ -2158,18 +2158,18 @@ static int test_sws(int argc, const char *argv[])
flag = 1;
if(setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
(void *)&flag, sizeof(flag))) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("setsockopt(SO_REUSEADDR) failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
goto sws_cleanup;
}
#if defined(_WIN32) && defined(USE_UNIX_SOCKETS)
}
#endif
if(curlx_nonblock(sock, TRUE)) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("curlx_nonblock failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
goto sws_cleanup;
}
@ -2196,15 +2196,15 @@ static int test_sws(int argc, const char *argv[])
#endif /* USE_UNIX_SOCKETS */
}
if(rc) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
#ifdef USE_UNIX_SOCKETS
if(socket_domain == AF_UNIX)
logmsg("Error binding socket on path %s (%d) %s", unix_socket,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
else
#endif
logmsg("Error binding socket on port %hu (%d) %s", port,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
goto sws_cleanup;
}
@ -2223,9 +2223,9 @@ static int test_sws(int argc, const char *argv[])
la_size = sizeof(localaddr.sa6);
#endif
if(getsockname(sock, &localaddr.sa, &la_size) < 0) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("getsockname() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(sock);
goto sws_cleanup;
}
@ -2262,9 +2262,9 @@ static int test_sws(int argc, const char *argv[])
/* start accepting connections */
rc = listen(sock, 50);
if(rc) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("listen() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
goto sws_cleanup;
}
@ -2336,9 +2336,9 @@ static int test_sws(int argc, const char *argv[])
goto sws_cleanup;
if(rc < 0) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("select() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
goto sws_cleanup;
}

View file

@ -1015,7 +1015,7 @@ static int test_tftpd(int argc, const char **argv)
curl_socket_t sock = CURL_SOCKET_BAD;
int flag;
int rc;
int error;
int sockerr;
char errbuf[STRERROR_LEN];
struct testcase test;
int result = 0;
@ -1121,18 +1121,18 @@ static int test_tftpd(int argc, const char **argv)
#endif
if(sock == CURL_SOCKET_BAD) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("Error creating socket (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
result = 1;
goto tftpd_cleanup;
}
flag = 1;
if(setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, (void *)&flag, sizeof(flag))) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("setsockopt(SO_REUSEADDR) failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
result = 1;
goto tftpd_cleanup;
}
@ -1156,9 +1156,9 @@ static int test_tftpd(int argc, const char **argv)
}
#endif /* USE_IPV6 */
if(rc) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("Error binding socket on port %hu (%d) %s", port,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
result = 1;
goto tftpd_cleanup;
}
@ -1178,9 +1178,9 @@ static int test_tftpd(int argc, const char **argv)
la_size = sizeof(localaddr.sa6);
#endif
if(getsockname(sock, &localaddr.sa, &la_size) < 0) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("getsockname() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(sock);
goto tftpd_cleanup;
}

View file

@ -656,7 +656,6 @@ void restore_signal_handlers(bool keep_sigalrm)
int bind_unix_socket(curl_socket_t sock, const char *unix_socket,
struct sockaddr_un *sau)
{
int error;
char errbuf[STRERROR_LEN];
int rc;
size_t len;
@ -678,20 +677,22 @@ int bind_unix_socket(curl_socket_t sock, const char *unix_socket,
rc = bind(sock, (struct sockaddr *)sau, sizeof(struct sockaddr_un));
if(rc && SOCKERRNO == SOCKEADDRINUSE) {
curlx_struct_stat statbuf;
int sockerr;
/* socket already exists. Perhaps it is stale? */
curl_socket_t unixfd = socket(AF_UNIX, SOCK_STREAM, 0);
if(unixfd == CURL_SOCKET_BAD) {
sockerr = SOCKERRNO;
logmsg("Failed to create socket at %s (%d) %s", unix_socket,
SOCKERRNO, curlx_strerror(SOCKERRNO, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
return -1;
}
/* check whether the server is alive */
rc = connect(unixfd, (struct sockaddr*)sau, sizeof(struct sockaddr_un));
error = SOCKERRNO;
sockerr = SOCKERRNO;
sclose(unixfd);
if(rc && error != SOCKECONNREFUSED) {
if(rc && sockerr != SOCKECONNREFUSED) {
logmsg("Failed to connect to %s (%d) %s", unix_socket,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
return rc;
}
/* socket server is not alive, now check if it was actually a socket. */
@ -739,7 +740,7 @@ curl_socket_t sockdaemon(curl_socket_t sock,
int maxretr = 10;
int delay = 20;
int attempt = 0;
int error = 0;
int sockerr = 0;
char errbuf[STRERROR_LEN];
#ifndef USE_UNIX_SOCKETS
@ -755,16 +756,16 @@ curl_socket_t sockdaemon(curl_socket_t sock,
rc = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR,
(void *)&flag, sizeof(flag));
if(rc) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("setsockopt(SO_REUSEADDR) failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
if(maxretr) {
rc = curlx_wait_ms(delay);
if(rc) {
/* should not happen */
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("curlx_wait_ms() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(sock);
return CURL_SOCKET_BAD;
}
@ -782,7 +783,7 @@ curl_socket_t sockdaemon(curl_socket_t sock,
if(rc) {
logmsg("setsockopt(SO_REUSEADDR) failed %d times in %d ms. "
"Error (%d) %s", attempt, totdelay,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
logmsg("Continuing anyway...");
}
#if defined(_WIN32) && defined(USE_UNIX_SOCKETS)
@ -819,15 +820,15 @@ curl_socket_t sockdaemon(curl_socket_t sock,
}
if(rc) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
#ifdef USE_UNIX_SOCKETS
if(socket_domain == AF_UNIX)
logmsg("Error binding socket on path %s (%d) %s", unix_socket,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
else
#endif
logmsg("Error binding socket on port %hu (%d) %s", *listenport,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(sock);
return CURL_SOCKET_BAD;
}
@ -849,9 +850,9 @@ curl_socket_t sockdaemon(curl_socket_t sock,
#endif
la_size = sizeof(localaddr.sa4);
if(getsockname(sock, &localaddr.sa, &la_size) < 0) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("getsockname() failed with error (%d) %s",
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(sock);
return CURL_SOCKET_BAD;
}
@ -887,9 +888,9 @@ curl_socket_t sockdaemon(curl_socket_t sock,
/* start accepting connections */
rc = listen(sock, 5);
if(rc) {
error = SOCKERRNO;
sockerr = SOCKERRNO;
logmsg("listen(%ld, 5) failed with error (%d) %s", (long)sock,
error, curlx_strerror(error, errbuf, sizeof(errbuf)));
sockerr, curlx_strerror(sockerr, errbuf, sizeof(errbuf)));
sclose(sock);
return CURL_SOCKET_BAD;
}