{-# LANGUAGE FlexibleContexts #-} {-# LANGUAGE PolyKinds #-} {-# LANGUAGE RankNTypes #-} {-# LANGUAGE ScopedTypeVariables #-} module Data.Conduit.Network.Unix ( -- * Basic utilities sourceSocket , sinkSocket -- * Simple server/client interface , SN.AppDataUnix , appSource , appSink -- ** Server , SN.ServerSettingsUnix , serverSettings , SN.runUnixServer -- ** Client , SN.ClientSettingsUnix , clientSettings , SN.runUnixClient -- ** Getters , SN.getPath , SN.getAfterBind -- ** Setters , SN.setPath , SN.setAfterBind ) where import Data.Conduit import Network.Socket (Socket) import qualified Network.Socket as NS import Data.Conduit.Network (appSource, appSink, sourceSocket, sinkSocket) import qualified Data.Streaming.Network as SN import Control.Monad.IO.Class (MonadIO (liftIO)) import Control.Exception (throwIO, SomeException, try, finally, bracket, bracketOnError, catch) import Control.Monad (forever, void) import Control.Monad.Trans.Control (control) import Control.Concurrent (forkIO) import System.Directory (removeFile) import System.IO.Error (isDoesNotExistError) import Control.Monad.Trans.Resource (MonadBaseControl) clientSettings = SN.clientSettingsUnix serverSettings = SN.serverSettingsUnix