@@ -75,9 +75,14 @@ import Foreign.Ptr (minusPtr, plusPtr, Ptr, castPtr)
7575import Foreign.Storable (Storable(..))
7676import GHC.ForeignPtr (mallocPlainForeignPtrBytes)
7777import Network.Socket
78− (withFdSocket, Socket, PortNumber, SocketOption(..), Family(..),
78+ (Socket, PortNumber, SocketOption(..), Family(..),
7979 SockAddr(..), withSocketsDo, SocketType(..), socket, accept, bind,
8080 defaultProtocol, setSocketOption, maxListenQueue, sendBuf, recvBuf)
81+#if MIN_VERSION_network(3,1,0)
82+import Network.Socket (withFdSocket)
83+#else
84+import Network.Socket (fdSocket)
85+#endif
8186import Prelude hiding (read)
8287
8388import qualified Network.Socket as Net
@@ -181,7 +186,11 @@ readArrayUpto = readArrayUptoWith recvBuf
181186
182187waitWhen0 :: Int -> Socket -> IO ()
183188waitWhen0 0 s = when rtsSupportsBoundThreads $
189+#if MIN_VERSION_network(3,1,0)
184190 withFdSocket s $ \fd -> threadWaitWrite $ fromIntegral fd
191+#else
192+ let fd = fdSocket s in threadWaitWrite $ fromIntegral fd
193+#endif
185194waitWhen0 _ _ = return ()
186195
187196sendAll :: Socket -> Ptr Word8 -> Int -> IO ()