module System.Socket.Internal.Exception where
import Control.Exception
import Data.Typeable
import Foreign.C.Types
newtype SocketException
= SocketException CInt
deriving (Typeable, Eq, Ord)
instance Exception SocketException
instance Show SocketException where
show e@(SocketException i)
| e == eOk = "eOk"
| e == eInterrupted = "eInterrupted"
| e == eBadFileDescriptor = "eBadFileDescriptor"
| e == eInvalid = "eInvalid"
| e == ePipe = "ePipe"
| e == eWouldBlock = "eWouldBlock"
| e == eAgain = "eAgain"
| e == eNotSocket = "eNotSocket"
| e == eDestinationAddressRequired = "eDestinationAddressRequired"
| e == eMessageSize = "eMessageSize"
| e == eProtocolType = "eProtocolType"
| e == eNoProtocolOption = "eNoProtocolOption"
| e == eProtocolNotSupported = "eProtocolNotSupported"
| e == eSocketTypeNotSupported = "eSocketTypeNotSupported"
| e == eOperationNotSupported = "eOperationNotSupported"
| e == eProtocolFamilyNotSupported = "eProtocolFamilyNotSupported"
| e == eAddressFamilyNotSupported = "eAddressFamilyNotSupported"
| e == eAddressInUse = "eAddressInUse"
| e == eAddressNotAvailable = "eAddressNotAvailable"
| e == eNetworkDown = "eNetworkDown"
| e == eNetworkUnreachable = "eNetworkUnreachable"
| e == eNetworkReset = "eNetworkReset"
| e == eConnectionAborted = "eConnectionAborted"
| e == eConnectionReset = "eConnectionReset"
| e == eNoBufferSpace = "eNoBufferSpace"
| e == eIsConnected = "eIsConnected"
| e == eNotConnected = "eNotConnected"
| e == eShutdown = "eShutdown"
| e == eTooManyReferences = "eTooManyReferences"
| e == eTimedOut = "eTimedOut"
| e == eConnectionRefused = "eConnectionRefused"
| e == eHostDown = "eHostDown"
| e == eHostUnreachable = "eHostUnreachable"
| e == eAlready = "eAlready"
| e == eInProgress = "eInProgress"
| otherwise = "SocketException " ++ show i
eOk :: SocketException
eOk = SocketException (0)
eInterrupted :: SocketException
eInterrupted = SocketException (4)
eBadFileDescriptor :: SocketException
eBadFileDescriptor = SocketException (9)
eInvalid :: SocketException
eInvalid = SocketException (22)
ePipe :: SocketException
ePipe = SocketException (32)
eWouldBlock :: SocketException
eWouldBlock = SocketException (11)
eAgain :: SocketException
eAgain = SocketException (11)
eNotSocket :: SocketException
eNotSocket = SocketException (88)
eDestinationAddressRequired :: SocketException
eDestinationAddressRequired = SocketException (89)
eMessageSize :: SocketException
eMessageSize = SocketException (90)
eProtocolType :: SocketException
eProtocolType = SocketException (91)
eNoProtocolOption :: SocketException
eNoProtocolOption = SocketException (92)
eProtocolNotSupported :: SocketException
eProtocolNotSupported = SocketException (93)
eSocketTypeNotSupported :: SocketException
eSocketTypeNotSupported = SocketException (94)
eOperationNotSupported :: SocketException
eOperationNotSupported = SocketException (95)
eProtocolFamilyNotSupported :: SocketException
eProtocolFamilyNotSupported = SocketException (96)
eAddressFamilyNotSupported :: SocketException
eAddressFamilyNotSupported = SocketException (97)
eAddressInUse :: SocketException
eAddressInUse = SocketException (98)
eAddressNotAvailable :: SocketException
eAddressNotAvailable = SocketException (99)
eNetworkDown :: SocketException
eNetworkDown = SocketException (100)
eNetworkUnreachable :: SocketException
eNetworkUnreachable = SocketException (101)
eNetworkReset :: SocketException
eNetworkReset = SocketException (102)
eConnectionAborted :: SocketException
eConnectionAborted = SocketException (103)
eConnectionReset :: SocketException
eConnectionReset = SocketException (104)
eNoBufferSpace :: SocketException
eNoBufferSpace = SocketException (105)
eIsConnected :: SocketException
eIsConnected = SocketException (106)
eNotConnected :: SocketException
eNotConnected = SocketException (107)
eShutdown :: SocketException
eShutdown = SocketException (108)
eTooManyReferences :: SocketException
eTooManyReferences = SocketException (109)
eTimedOut :: SocketException
eTimedOut = SocketException (110)
eConnectionRefused :: SocketException
eConnectionRefused = SocketException (111)
eHostDown :: SocketException
eHostDown = SocketException (112)
eHostUnreachable :: SocketException
eHostUnreachable = SocketException (113)
eAlready :: SocketException
eAlready = SocketException (114)
eInProgress :: SocketException
eInProgress = SocketException (115)