From d4ce9c0df26c3f21c25049a48836a4fd7eca63a2 Mon Sep 17 00:00:00 2001 From: Max Kellermann <max@musicpd.org> Date: Fri, 13 Jul 2018 18:16:39 +0200 Subject: [PATCH] system/FileDescriptor: no-op implementation of *CloseOnExec() on Windows Fixes the NFS client build, closes #305. --- src/net/SocketDescriptor.hxx | 5 +++-- src/system/FileDescriptor.hxx | 5 ++++- src/system/UniqueFileDescriptor.hxx | 5 +++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/net/SocketDescriptor.hxx b/src/net/SocketDescriptor.hxx index d42f36fe9..60f6ba5d1 100644 --- a/src/net/SocketDescriptor.hxx +++ b/src/net/SocketDescriptor.hxx @@ -90,11 +90,12 @@ public: return SocketDescriptor(FileDescriptor::Undefined()); } + using FileDescriptor::EnableCloseOnExec; + using FileDescriptor::DisableCloseOnExec; + #ifndef _WIN32 using FileDescriptor::SetNonBlocking; using FileDescriptor::SetBlocking; - using FileDescriptor::EnableCloseOnExec; - using FileDescriptor::DisableCloseOnExec; using FileDescriptor::Duplicate; using FileDescriptor::Close; #else diff --git a/src/system/FileDescriptor.hxx b/src/system/FileDescriptor.hxx index 8e0f9177b..1cc780050 100644 --- a/src/system/FileDescriptor.hxx +++ b/src/system/FileDescriptor.hxx @@ -115,7 +115,10 @@ public: static bool CreatePipe(FileDescriptor &r, FileDescriptor &w) noexcept; -#ifndef _WIN32 +#ifdef _WIN32 + void EnableCloseOnExec() noexcept {} + void DisableCloseOnExec() noexcept {} +#else static bool CreatePipeNonBlock(FileDescriptor &r, FileDescriptor &w) noexcept; diff --git a/src/system/UniqueFileDescriptor.hxx b/src/system/UniqueFileDescriptor.hxx index 5c1ae09f5..b6703f7ff 100644 --- a/src/system/UniqueFileDescriptor.hxx +++ b/src/system/UniqueFileDescriptor.hxx @@ -97,14 +97,15 @@ public: using FileDescriptor::SetNonBlocking; using FileDescriptor::SetBlocking; - using FileDescriptor::EnableCloseOnExec; - using FileDescriptor::DisableCloseOnExec; using FileDescriptor::Duplicate; using FileDescriptor::CheckDuplicate; static bool CreatePipe(FileDescriptor &r, FileDescriptor &w); #endif + using FileDescriptor::EnableCloseOnExec; + using FileDescriptor::DisableCloseOnExec; + #ifdef USE_EVENTFD using FileDescriptor::CreateEventFD; #endif