diff options
author | Roman Smrž <roman.smrz@seznam.cz> | 2025-06-25 20:56:53 +0200 |
---|---|---|
committer | Roman Smrž <roman.smrz@seznam.cz> | 2025-06-25 20:56:53 +0200 |
commit | 0a516080b58fccbe977b93c85554578bd99b0bb2 (patch) | |
tree | f8006813c01d73230bcc49624127f78a14d18123 /src | |
parent | 179bf5d3ab9a925658c84e7a4ca393a96c10debb (diff) |
Fix build of setNetworkNamespace with unix-2.7
Diffstat (limited to 'src')
-rw-r--r-- | src/Network/Ip.hs | 6 |
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 |