diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/client/ClientNew.cxx | 1 | ||||
-rw-r--r-- | src/event/ServerSocket.cxx | 1 | ||||
-rw-r--r-- | src/event/SocketMonitor.cxx | 1 | ||||
-rw-r--r-- | src/output/plugins/httpd/HttpdOutputPlugin.cxx | 1 | ||||
-rw-r--r-- | src/system/fd_util.c | 133 | ||||
-rw-r--r-- | src/system/fd_util.h | 71 |
6 files changed, 0 insertions, 208 deletions
diff --git a/src/client/ClientNew.cxx b/src/client/ClientNew.cxx index 0b95b79b7..12d302dc1 100644 --- a/src/client/ClientNew.cxx +++ b/src/client/ClientNew.cxx @@ -22,7 +22,6 @@ #include "ClientList.hxx" #include "Partition.hxx" #include "Instance.hxx" -#include "system/fd_util.h" #include "net/UniqueSocketDescriptor.hxx" #include "net/SocketAddress.hxx" #include "net/ToString.hxx" diff --git a/src/event/ServerSocket.cxx b/src/event/ServerSocket.cxx index 375daf511..667b6846b 100644 --- a/src/event/ServerSocket.cxx +++ b/src/event/ServerSocket.cxx @@ -29,7 +29,6 @@ #include "net/Resolver.hxx" #include "net/ToString.hxx" #include "event/SocketMonitor.hxx" -#include "system/fd_util.h" #include "fs/AllocatedPath.hxx" #include "fs/FileSystem.hxx" #include "util/RuntimeError.hxx" diff --git a/src/event/SocketMonitor.cxx b/src/event/SocketMonitor.cxx index 66cf0c532..52b554644 100644 --- a/src/event/SocketMonitor.cxx +++ b/src/event/SocketMonitor.cxx @@ -20,7 +20,6 @@ #include "config.h" #include "SocketMonitor.hxx" #include "Loop.hxx" -#include "system/fd_util.h" #include <assert.h> diff --git a/src/output/plugins/httpd/HttpdOutputPlugin.cxx b/src/output/plugins/httpd/HttpdOutputPlugin.cxx index 2f876de62..bfffb6354 100644 --- a/src/output/plugins/httpd/HttpdOutputPlugin.cxx +++ b/src/output/plugins/httpd/HttpdOutputPlugin.cxx @@ -30,7 +30,6 @@ #include "net/ToString.hxx" #include "Page.hxx" #include "IcyMetaDataServer.hxx" -#include "system/fd_util.h" #include "event/Call.hxx" #include "util/RuntimeError.hxx" #include "util/Domain.hxx" diff --git a/src/system/fd_util.c b/src/system/fd_util.c deleted file mode 100644 index ef3b57cd7..000000000 --- a/src/system/fd_util.c +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright 2003-2017 The Music Player Daemon Project - * http://www.musicpd.org - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include "config.h" /* must be first for large file support */ -#include "fd_util.h" - -#include <assert.h> -#include <unistd.h> -#include <fcntl.h> -#include <errno.h> - -#ifdef WIN32 -#include <ws2tcpip.h> -#include <winsock2.h> -#else -#include <sys/socket.h> -#endif - -#ifdef USE_EVENTFD -#include <sys/eventfd.h> -#endif - -#ifndef WIN32 - -static int -fd_mask_flags(int fd, int and_mask, int xor_mask) -{ - assert(fd >= 0); - - const int old_flags = fcntl(fd, F_GETFD, 0); - if (old_flags < 0) - return old_flags; - - const int new_flags = (old_flags & and_mask) ^ xor_mask; - if (new_flags == old_flags) - return old_flags; - - return fcntl(fd, F_SETFD, new_flags); -} - -#endif /* !WIN32 */ - -int -fd_set_cloexec(int fd, bool enable) -{ -#ifndef WIN32 - return fd_mask_flags(fd, ~FD_CLOEXEC, enable ? FD_CLOEXEC : 0); -#else - (void)fd; - (void)enable; - - return 0; -#endif -} - -#ifndef WIN32 - -/** - * Enables non-blocking mode for the specified file descriptor. On - * WIN32, this function only works for sockets. - */ -static int -fd_set_nonblock(int fd) -{ -#ifdef WIN32 - u_long val = 1; - return ioctlsocket(fd, FIONBIO, &val); -#else - int flags; - - assert(fd >= 0); - - flags = fcntl(fd, F_GETFL); - if (flags < 0) - return flags; - - return fcntl(fd, F_SETFL, flags | O_NONBLOCK); -#endif -} - -#endif - -int -pipe_cloexec_nonblock(int fd[2]) -{ -#ifdef WIN32 - return _pipe(fd, 512, _O_BINARY); -#else - int ret; - -#ifdef HAVE_PIPE2 - ret = pipe2(fd, O_CLOEXEC|O_NONBLOCK); - if (ret >= 0 || errno != ENOSYS) - return ret; -#endif - - ret = pipe(fd); - if (ret >= 0) { - fd_set_cloexec(fd[0], true); - fd_set_cloexec(fd[1], true); - - fd_set_nonblock(fd[0]); - fd_set_nonblock(fd[1]); - } - - return ret; -#endif -} diff --git a/src/system/fd_util.h b/src/system/fd_util.h deleted file mode 100644 index 9ed193e12..000000000 --- a/src/system/fd_util.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright 2003-2017 The Music Player Daemon Project - * http://www.musicpd.org - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * - Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * - Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR - * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/* - * This library provides easy helper functions for working with file - * descriptors. It has wrappers for taking advantage of Linux 2.6 - * specific features like O_CLOEXEC. - * - */ - -#ifndef FD_UTIL_H -#define FD_UTIL_H - -#include "check.h" - -#include <stdbool.h> -#include <stddef.h> - -#ifndef WIN32 -#include <sys/types.h> -#endif - -struct sockaddr; - -#ifdef __cplusplus -extern "C" { -#endif - -int -fd_set_cloexec(int fd, bool enable); - -/** - * Wrapper for pipe(), which sets the CLOEXEC flag (atomically if - * supported by the OS). - * - * On systems that supports it (everybody except for Windows), it also - * sets the NONBLOCK flag. - */ -int -pipe_cloexec_nonblock(int fd[2]); - -#ifdef __cplusplus -} /* extern "C" */ -#endif - -#endif |