summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2023-01-22 20:09:04 -0500
committerGlenn Strauss <gstrauss@gluelogic.com>2023-05-03 23:11:34 -0400
commitcf85bc56dfe751d55ed0ea7d3eda46ef0cc0a6d5 (patch)
treef65614601d11dfd247e996d84d9c19e1db518f3f
parentbbb54cf1bf81b979ef9fdfbf978ffd57813817e4 (diff)
downloadlighttpd-git-cf85bc56dfe751d55ed0ea7d3eda46ef0cc0a6d5.tar.gz
[core] _WIN32 use log_serror() for WSAGetLastError
-rw-r--r--src/connections.c9
-rw-r--r--src/fdevent_impl.c4
-rw-r--r--src/gw_backend.c25
-rw-r--r--src/http-header-glue.c2
-rw-r--r--src/mod_cgi.c4
-rw-r--r--src/network.c36
-rw-r--r--src/network_write.c7
7 files changed, 44 insertions, 43 deletions
diff --git a/src/connections.c b/src/connections.c
index 9425c9c7..a4b5fe5d 100644
--- a/src/connections.c
+++ b/src/connections.c
@@ -91,7 +91,7 @@ static void connection_close(connection *con) {
if (0 == fdio_close_socket(con->fd))
--srv->cur_fds;
else
- log_perror(r->conf.errh, __FILE__, __LINE__,
+ log_serror(r->conf.errh, __FILE__, __LINE__,
"(warning) close: %d", con->fd);
if (r->conf.log_state_handling) {
@@ -865,8 +865,7 @@ __attribute_cold__
static int connection_read_cq_err(connection *con) {
request_st * const r = &con->request;
#ifdef _WIN32
- int lastError = WSAGetLastError();
- switch (lastError) {
+ switch (WSAGetLastError()) {
case WSAEWOULDBLOCK:
return 0;
case WSAEINTR:
@@ -877,8 +876,8 @@ static int connection_read_cq_err(connection *con) {
/* suppress logging for this error, expected for keep-alive */
break;
default:
- log_error(r->conf.errh, __FILE__, __LINE__,
- "connection closed - recv failed: %d", lastError);
+ log_serror(r->conf.errh, __FILE__, __LINE__,
+ "connection closed - recv failed");
break;
}
#else
diff --git a/src/fdevent_impl.c b/src/fdevent_impl.c
index 78576ab2..a3a1f66b 100644
--- a/src/fdevent_impl.c
+++ b/src/fdevent_impl.c
@@ -287,7 +287,7 @@ fdevent_sched_run (fdevents * const ev)
#else
if (0 != close(fd))
#endif
- log_perror(ev->errh, __FILE__, __LINE__, "close failed %d", fd);
+ log_serror(ev->errh, __FILE__, __LINE__, "close() %d", fd);
else
--(*ev->cur_fds);
@@ -314,7 +314,7 @@ fdevent_poll (fdevents * const ev, const int timeout_ms)
if (n >= 0)
fdevent_sched_run(ev);
else if (errno != EINTR)
- log_perror(ev->errh, __FILE__, __LINE__, "fdevent_poll failed");
+ log_serror(ev->errh, __FILE__, __LINE__, "fdevent_poll()");
return n;
}
diff --git a/src/gw_backend.c b/src/gw_backend.c
index 02bf9162..5bb654f1 100644
--- a/src/gw_backend.c
+++ b/src/gw_backend.c
@@ -272,8 +272,13 @@ __attribute_cold__
static void gw_proc_connect_error(request_st * const r, gw_host *host, gw_proc *proc, pid_t pid, int errnum, int debug) {
const unix_time64_t cur_ts = log_monotonic_secs;
log_error_st * const errh = r->conf.errh;
- errno = errnum; /*(for log_perror())*/
- log_perror(errh, __FILE__, __LINE__,
+ #ifdef _WIN32
+ WSASetLastError(errnum); /*(for log_perror()/log_serror())*/
+ if (errnum == WSAEWOULDBLOCK) errnum = EAGAIN;
+ #else
+ errno = errnum; /*(for log_perror()/log_serror())*/
+ #endif
+ log_serror(errh, __FILE__, __LINE__,
"establishing connection failed: socket: %s", proc->connection_name->ptr);
if (!proc->is_local) {
@@ -500,7 +505,7 @@ static int gw_spawn_connection(gw_host * const host, gw_proc * const proc, log_e
gw_fd = fdevent_socket_cloexec(proc->saddr->sa_family, SOCK_STREAM, 0);
if (-1 == gw_fd) {
- log_perror(errh, __FILE__, __LINE__, "socket()");
+ log_serror(errh, __FILE__, __LINE__, "socket()");
return -1;
}
@@ -517,8 +522,8 @@ static int gw_spawn_connection(gw_host * const host, gw_proc * const proc, log_e
* or might not indicate presence of socket, so try to unlink unixsocket */
if (-1 == status && errno != ENOENT && proc->unixsocket) {
- log_perror(errh, __FILE__, __LINE__,
- "connect %s", proc->unixsocket->ptr);
+ log_serror(errh, __FILE__, __LINE__,
+ "connect() %s", proc->unixsocket->ptr);
unlink(proc->unixsocket->ptr);
}
@@ -540,26 +545,26 @@ static int gw_spawn_connection(gw_host * const host, gw_proc * const proc, log_e
gw_fd = fdevent_socket_cloexec(proc->saddr->sa_family, SOCK_STREAM, 0);
#endif
if (-1 == gw_fd) {
- log_perror(errh, __FILE__, __LINE__, "socket()");
+ log_serror(errh, __FILE__, __LINE__, "socket()");
return -1;
}
if (fdevent_set_so_reuseaddr(gw_fd, 1) < 0) {
- log_perror(errh, __FILE__, __LINE__, "socketsockopt()");
+ log_serror(errh, __FILE__, __LINE__, "socketsockopt()");
fdio_close_socket(gw_fd);
return -1;
}
/* create socket */
if (-1 == bind(gw_fd, proc->saddr, proc->saddrlen)) {
- log_perror(errh, __FILE__, __LINE__,
- "bind failed for: %s", proc->connection_name->ptr);
+ log_serror(errh, __FILE__, __LINE__,
+ "bind() %s", proc->connection_name->ptr);
fdio_close_socket(gw_fd);
return -1;
}
if (-1 == listen(gw_fd, host->listen_backlog)) {
- log_perror(errh, __FILE__, __LINE__, "listen()");
+ log_serror(errh, __FILE__, __LINE__, "listen()");
fdio_close_socket(gw_fd);
return -1;
}
diff --git a/src/http-header-glue.c b/src/http-header-glue.c
index ef48fa6e..3c36e1d0 100644
--- a/src/http-header-glue.c
+++ b/src/http-header-glue.c
@@ -1325,7 +1325,7 @@ handler_t http_response_read(request_st * const r, http_response_opts * const op
}
__attribute_fallthrough__
default:
- log_perror(r->conf.errh, __FILE__, __LINE__,
+ log_serror(r->conf.errh, __FILE__, __LINE__,
"recv() %d %d", r->con->fd, fd);
return HANDLER_ERROR;
}
diff --git a/src/mod_cgi.c b/src/mod_cgi.c
index 2395cf6e..aa9f400b 100644
--- a/src/mod_cgi.c
+++ b/src/mod_cgi.c
@@ -836,14 +836,14 @@ static int cgi_create_env(request_st * const r, plugin_data * const p, handler_c
#ifdef _WIN32
if (0 != fdevent_socketpair_cloexec(AF_INET,SOCK_STREAM,0,from_cgi_fds)) {
- log_perror(r->conf.errh, __FILE__, __LINE__, "socketpair()");
+ log_serror(r->conf.errh, __FILE__, __LINE__, "socketpair()");
if (0 == r->reqbody_length)
fdio_close_file(to_cgi_fds[0]);
return -1;
}
if (-1 == to_cgi_fds[0]) {
if (0 != fdevent_socketpair_cloexec(AF_INET,SOCK_STREAM,0,to_cgi_fds)) {
- log_perror(r->conf.errh, __FILE__, __LINE__, "socketpair()");
+ log_serror(r->conf.errh, __FILE__, __LINE__, "socketpair()");
fdio_close_socket(from_cgi_fds[0]);
fdio_close_socket(from_cgi_fds[1]);
return -1;
diff --git a/src/network.c b/src/network.c
index e6ef4ef7..669750c2 100644
--- a/src/network.c
+++ b/src/network.c
@@ -97,8 +97,7 @@ static handler_t network_server_handle_fdevent(void *context, int revents) {
if (loops) {
#ifdef _WIN32
- const int lastError = WSAGetLastError();
- switch (lastError) {
+ switch (WSAGetLastError()) {
case WSAEWOULDBLOCK:
case WSAECONNRESET:
case WSAENOBUFS:
@@ -107,7 +106,7 @@ static handler_t network_server_handle_fdevent(void *context, int revents) {
case WSAEMFILE:
break;
default:
- log_error(srv->errh, __FILE__, __LINE__, "accept(): %d", lastError);
+ log_serror(srv->errh, __FILE__, __LINE__, "accept()");
}
#else
switch (errno) {
@@ -419,7 +418,7 @@ static int network_server_init(server *srv, const network_socket_config *s, buff
memset(&addr, 0, sizeof(addr));
if (-1 != stdin_fd) {
if (-1 == getsockname(stdin_fd, (struct sockaddr *)&addr, &addr_len)) {
- log_perror(srv->errh, __FILE__, __LINE__, "getsockname()");
+ log_serror(srv->errh, __FILE__, __LINE__, "getsockname()");
return -1;
}
} else if (0 != network_host_parse_addr(srv, &addr, &addr_len, host_token, use_ipv6)) {
@@ -488,7 +487,7 @@ static int network_server_init(server *srv, const network_socket_config *s, buff
if (-1 != stdin_fd) {
srv_socket->fd = stdin_fd;
if (-1 == fdevent_socket_set_nb_cloexec(stdin_fd)) {
- log_perror(srv->errh, __FILE__, __LINE__, "fcntl()");
+ log_serror(srv->errh, __FILE__, __LINE__, "fcntl()");
return -1;
}
} else
@@ -497,7 +496,7 @@ static int network_server_init(server *srv, const network_socket_config *s, buff
/* check if the socket exists and try to connect to it. */
force_assert(host); /*(static analysis hint)*/
if (-1 == (srv_socket->fd = fdevent_socket_cloexec(AF_UNIX, SOCK_STREAM, 0))) {
- log_perror(srv->errh, __FILE__, __LINE__, "socket");
+ log_serror(srv->errh, __FILE__, __LINE__, "socket()");
return -1;
}
if (0 == connect(srv_socket->fd, (struct sockaddr *) &(srv_socket->addr), addr_len)) {
@@ -515,7 +514,7 @@ static int network_server_init(server *srv, const network_socket_config *s, buff
if (*host == '/') unlink(host);
break;
default:
- log_error(srv->errh, __FILE__, __LINE__,
+ log_serror(srv->errh, __FILE__, __LINE__,
"testing socket failed: connect() %s", host);
return -1;
}
@@ -527,21 +526,21 @@ static int network_server_init(server *srv, const network_socket_config *s, buff
case ENOENT:
break;
default:
- log_perror(srv->errh, __FILE__, __LINE__,
- "testing socket failed: %s", host);
+ log_serror(srv->errh, __FILE__, __LINE__,
+ "testing socket failed: connect() %s", host);
return -1;
}
#endif
if (-1 == fdevent_socket_set_nb(srv_socket->fd)) {
- log_perror(srv->errh, __FILE__, __LINE__, "fcntl()");
+ log_serror(srv->errh, __FILE__, __LINE__, "fcntl()");
return -1;
}
} else
#endif
{
if (-1 == (srv_socket->fd = fdevent_socket_nb_cloexec(family, SOCK_STREAM, IPPROTO_TCP))) {
- log_perror(srv->errh, __FILE__, __LINE__, "socket");
+ log_serror(srv->errh, __FILE__, __LINE__, "socket()");
return -1;
}
@@ -549,7 +548,7 @@ static int network_server_init(server *srv, const network_socket_config *s, buff
if (set_v6only) {
int val = (set_v6only > 0);
if (-1 == setsockopt(srv_socket->fd, IPPROTO_IPV6, IPV6_V6ONLY, &val, sizeof(val))) {
- log_perror(srv->errh, __FILE__, __LINE__, "setsockopt(IPV6_V6ONLY)");
+ log_serror(srv->errh, __FILE__, __LINE__, "setsockopt(IPV6_V6ONLY)");
return -1;
}
}
@@ -563,21 +562,20 @@ static int network_server_init(server *srv, const network_socket_config *s, buff
#endif
if (fdevent_set_so_reuseaddr(srv_socket->fd, 1) < 0) {
- log_perror(srv->errh, __FILE__, __LINE__, "setsockopt(SO_REUSEADDR)");
+ log_serror(srv->errh, __FILE__, __LINE__, "setsockopt(SO_REUSEADDR)");
return -1;
}
if (family != AF_UNIX) {
if (fdevent_set_tcp_nodelay(srv_socket->fd, 1) < 0) {
- log_perror(srv->errh, __FILE__, __LINE__, "setsockopt(TCP_NODELAY)");
+ log_serror(srv->errh, __FILE__, __LINE__, "setsockopt(TCP_NODELAY)");
return -1;
}
}
if (-1 != stdin_fd) { } else
if (0 != bind(srv_socket->fd, (struct sockaddr *) &(srv_socket->addr), addr_len)) {
- log_perror(srv->errh, __FILE__, __LINE__,
- "can't bind to socket: %s", host);
+ log_serror(srv->errh, __FILE__, __LINE__, "bind() %s", host);
return -1;
}
@@ -599,7 +597,7 @@ static int network_server_init(server *srv, const network_socket_config *s, buff
if (-1 != stdin_fd) { } else
if (-1 == listen(srv_socket->fd, s->listen_backlog)) {
- log_perror(srv->errh, __FILE__, __LINE__, "listen");
+ log_serror(srv->errh, __FILE__, __LINE__, "listen()");
return -1;
}
@@ -609,7 +607,7 @@ static int network_server_init(server *srv, const network_socket_config *s, buff
else if (s->defer_accept) {
int v = s->defer_accept;
if (-1 == setsockopt(srv_socket->fd, IPPROTO_TCP, TCP_DEFER_ACCEPT, &v, sizeof(v))) {
- log_perror(srv->errh, __FILE__, __LINE__, "can't set TCP_DEFER_ACCEPT");
+ log_serror(srv->errh, __FILE__, __LINE__, "setsockopt(TCP_DEFER_ACCEPT)");
}
}
#endif
@@ -721,7 +719,7 @@ static int network_socket_activation_nfds(server *srv, const network_socket_conf
for (int fd = 3; fd < nfds; ++fd) {
addr_len = sizeof(sock_addr);
if (-1 == (rc = getsockname(fd, (struct sockaddr *)&addr, &addr_len))) {
- log_perror(srv->errh, __FILE__, __LINE__,
+ log_serror(srv->errh, __FILE__, __LINE__,
"socket activation getsockname()");
break;
}
diff --git a/src/network_write.c b/src/network_write.c
index 2daa4e79..07aee803 100644
--- a/src/network_write.c
+++ b/src/network_write.c
@@ -84,8 +84,7 @@
__attribute_cold__
static int network_write_error(int fd, log_error_st *errh) {
#ifdef _WIN32
- int lastError = WSAGetLastError();
- switch (lastError) {
+ switch (WSAGetLastError()) {
case WSAEINTR:
case WSAEWOULDBLOCK:
return -3;
@@ -94,7 +93,7 @@ static int network_write_error(int fd, log_error_st *errh) {
case WSAECONNABORTED:
return -2;
default:
- log_error(errh,__FILE__,__LINE__,"send failed: %d %d",lastError,fd);
+ log_serror(errh, __FILE__, __LINE__, "send() %d", fd);
return -1;
}
#else
@@ -106,7 +105,7 @@ static int network_write_error(int fd, log_error_st *errh) {
case ECONNRESET:
return -2;
default:
- log_perror(errh,__FILE__,__LINE__,"write failed: %d",fd);
+ log_perror(errh, __FILE__, __LINE__, "write() %d", fd);
return -1;
}
#endif