summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-06-25 20:56:53 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2025-06-25 20:56:53 +0200
commit0a516080b58fccbe977b93c85554578bd99b0bb2 (patch)
treef8006813c01d73230bcc49624127f78a14d18123 /src
parent179bf5d3ab9a925658c84e7a4ca393a96c10debb (diff)
Fix build of setNetworkNamespace with unix-2.7
Diffstat (limited to 'src')
-rw-r--r--src/Network/Ip.hs6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/Network/Ip.hs b/src/Network/Ip.hs
index 3750793..69a6b43 100644
--- a/src/Network/Ip.hs
+++ b/src/Network/Ip.hs
@@ -1,3 +1,5 @@
+{-# LANGUAGE CPP #-}
+
module Network.Ip (
IpPrefix(..),
textIpNetwork,
@@ -134,7 +136,11 @@ addNetworkNamespace netnsName = do
setNetworkNamespace :: MonadIO m => NetworkNamespace -> m ()
setNetworkNamespace netns = liftIO $ do
let path = "/var/run/netns/" <> T.unpack (textNetnsName netns)
+#if MIN_VERSION_unix(2,8,0)
open = openFd path ReadOnly defaultFileFlags { cloexec = True }
+#else
+ open = openFd path ReadOnly Nothing defaultFileFlags
+#endif
res <- bracket open closeFd $ \(Fd fd) -> do
c_setns fd c_CLONE_NEWNET
when (res /= 0) $ do