@@ -11,7 +11,7 @@
12module Streamly.Internal.Network.Socket
12module Streamly.Internal.Network.Socket
14− SockSpec (..)
14+ SockSpec (..)
15 -- * Use a socket
15 -- * Use a socket
16 , forSocketM
16 , forSocketM
17 , withSocket
17 , withSocket
@@ -104,7 +104,6 @@ import qualified Streamly.Internal.Data.Array as A
104import qualified Streamly.Internal.Data.MutArray as MArray
104import qualified Streamly.Internal.Data.MutArray as MArray
105 (MutArray(..), asPtrUnsafe, pinnedNewBytes)
105 (MutArray(..), asPtrUnsafe, pinnedNewBytes)
106import qualified Streamly.Internal.Data.Stream as S (fromStreamK, Stream(..), Step(..))
106import qualified Streamly.Internal.Data.Stream as S (fromStreamK, Stream(..), Step(..))
107−import qualified Streamly.Internal.Data.Unfold as UF (map)
108import qualified Streamly.Internal.Data.StreamK as K (mkStream)
107import qualified Streamly.Internal.Data.StreamK as K (mkStream)
@@ -140,6 +139,9 @@ withSocket sk f = S.finallyIO (Net.close sk) (f sk)
140-- XXX Protocol specific socket options should be separated from socket level
139-- XXX Protocol specific socket options should be separated from socket level
141-- options.
140-- options.
142+-- NOTE: the socket config is specified as a record and not by composing
143+-- functions because all the fields are mandatory except the sockOpts field.
143-- | Specify the socket protocol details.
145-- | Specify the socket protocol details.
144data SockSpec = SockSpec
146data SockSpec = SockSpec
@@ -183,7 +185,7 @@ listenTuples = Unfold step inject
184{-# INLINE acceptor #-}
186{-# INLINE acceptor #-}
185acceptor :: MonadIO m => Unfold m (Int, SockSpec, SockAddr) Socket
187acceptor :: MonadIO m => Unfold m (Int, SockSpec, SockAddr) Socket
186−acceptor = UF.map fst listenTuples
188+acceptor = fmap fst listenTuples
188{-# INLINE connectCommon #-}
190{-# INLINE connectCommon #-}
189connectCommon :: SockSpec -> Maybe SockAddr -> SockAddr -> IO Socket
191connectCommon :: SockSpec -> Maybe SockAddr -> SockAddr -> IO Socket