summaryrefslogtreecommitdiff
path: root/src/network.c
diff options
context:
space:
mode:
authorGlenn Strauss <gstrauss@gluelogic.com>2020-11-26 15:17:02 -0500
committerGlenn Strauss <gstrauss@gluelogic.com>2023-05-03 23:11:34 -0400
commitabaf0a5f4d17206340f54420558fc7dfaae62e4f (patch)
tree10c041f2a1edc46e31424dde903d15b599c9b564 /src/network.c
parent9b9dd8efafbf74b173f7d79f791b0736c797900f (diff)
downloadlighttpd-git-abaf0a5f4d17206340f54420558fc7dfaae62e4f.tar.gz
[core] _WIN32 socket-compat, filesystem-compat
_WIN32 is sufficiently different -- *different*; not better -- that isolating _WIN32 code is clearer than #ifdef _WIN32 in almost every func in fdevent.c _WIN32-specific fdevent_socket_* funcs _WIN32 SOCKET fds must be closed with closesocket(), not close() _WIN32 HANDLE_FLAG_INHERIT for FD_CLOEXEC _WIN32 use _sopen_s() without _O_TEMPORARY Use _sopen_s() without _O_TEMPORARY in fdevent_mkostemp(). _O_TEMPORARY would remove file once last handle to file is closed. Temporary files in chunkqueue may be closed for large request/response _WIN32 fdevent_rename() using MoveFileExA _WIN32 rename() fails if the target file already exists. Alternatives are MoveFileExA() or ReplaceFileA(). Both of the above fail if either oldfile or newfile are open, so - not atomic - may fail sporadically
Diffstat (limited to 'src/network.c')
-rw-r--r--src/network.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/network.c b/src/network.c
index 6f1def5e..5341d5b3 100644
--- a/src/network.c
+++ b/src/network.c
@@ -472,8 +472,8 @@ 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_fcntl_set_nb_cloexec(stdin_fd)) {
- log_perror(srv->errh, __FILE__, __LINE__, "fcntl");
+ if (-1 == fdevent_socket_set_nb_cloexec(stdin_fd)) {
+ log_perror(srv->errh, __FILE__, __LINE__, "fcntl()");
return -1;
}
} else
@@ -504,8 +504,8 @@ static int network_server_init(server *srv, const network_socket_config *s, buff
return -1;
}
- if (-1 == fdevent_fcntl_set_nb(srv_socket->fd)) {
- log_perror(srv->errh, __FILE__, __LINE__, "fcntl");
+ if (-1 == fdevent_socket_set_nb(srv_socket->fd)) {
+ log_perror(srv->errh, __FILE__, __LINE__, "fcntl()");
return -1;
}
} else
@@ -609,7 +609,7 @@ int network_close(server *srv) {
server_socket *srv_socket = srv->srv_sockets.ptr[i];
if (srv_socket->fd != -1) {
network_unregister_sock(srv, srv_socket);
- close(srv_socket->fd);
+ fdio_close_socket(srv_socket->fd);
}
buffer_free(srv_socket->srv_token);
@@ -624,7 +624,7 @@ int network_close(server *srv) {
for (uint32_t i = 0; i < srv->srv_sockets_inherited.used; ++i) {
server_socket *srv_socket = srv->srv_sockets_inherited.ptr[i];
if (srv_socket->fd != -1 && srv_socket->sidx != (unsigned short)~0u) {
- close(srv_socket->fd);
+ fdio_close_socket(srv_socket->fd);
}
buffer_free(srv_socket->srv_token);
@@ -647,7 +647,7 @@ void network_socket_activation_to_env (server * const srv) {
server_socket *srv_socket = srv->srv_sockets.ptr[n];
if (srv_socket->fd < fd) continue;
if (srv_socket->fd == fd) {
- fdevent_clrfd_cloexec(fd);
+ (void)fdevent_socket_clr_cloexec(fd);
++fd;
continue;
}
@@ -657,7 +657,7 @@ void network_socket_activation_to_env (server * const srv) {
break;
}
if (i < srv->srv_sockets.used) {
- fdevent_clrfd_cloexec(fd);
+ (void)fdevent_socket_clr_cloexec(fd);
++fd;
--n; /* loop to reprocess this entry */
continue;
@@ -812,7 +812,7 @@ int network_init(server *srv, int stdin_fd) {
/*assert(buffer_eq_slen(b, CONST_STR_LEN("/dev/stdin")));*/
rc = (0 == srv->srv_sockets.used)
? network_server_init(srv, &p->defaults, b, 0, stdin_fd)
- : close(stdin_fd);/*(graceful restart listening to "/dev/stdin")*/
+ : fdio_close_socket(stdin_fd);/*(graceful restart; "/dev/stdin")*/
buffer_free(b);
if (0 != rc) break;
}