Copyright | (c) Lars Petersen 2015 |
---|---|
License | MIT |
Maintainer | info@lars-petersen.net |
Stability | experimental |
Safe Haskell | None |
Language | Haskell2010 |
Synopsis
- data Inet6
- data Inet6Address
- data Inet6Port
- data Inet6FlowInfo
- data Inet6ScopeId
- data family SocketAddress f
- inet6AddressFromTuple :: (Word16, Word16, Word16, Word16, Word16, Word16, Word16, Word16) -> Inet6Address
- inet6AddressToTuple :: Inet6Address -> (Word16, Word16, Word16, Word16, Word16, Word16, Word16, Word16)
- inet6Any :: Inet6Address
- inet6Loopback :: Inet6Address
- data V6Only = V6Only Bool
Inet6
Instances
Inet6Address
data Inet6Address Source #
To avoid errors with endianess it was decided to keep this type abstract.
Use inet6AddressFromTuple
and inet6AddressToTuple
for constructing and
deconstructing custom addresses.
Hint: Use the Storable
instance. It exposes it
exactly as found within an IP packet (big endian if you insist
on interpreting it as a number).
Another hint: Use getAddressInfo
for parsing and suppress
nameserver lookups:
> getAddressInfo (Just "::1") Nothing aiNumericHost :: IO [AddressInfo SocketAddressInet6 Stream TCP] [AddressInfo { addressInfoFlags = AddressInfoFlags 4, socketAddress = SocketAddressInet6 {inet6Address = Inet6Address 0000:0000:0000:0000:0000:0000:0000:0001, inet6Port = Inet6Port 0, inet6FlowInfo = Inet6FlowInfo 0, inet6ScopeId = Inet6ScopeId 0}, canonicalName = Nothing }]
Instances
Eq Inet6Address Source # | |
Defined in System.Socket.Family.Inet6 (==) :: Inet6Address -> Inet6Address -> Bool # (/=) :: Inet6Address -> Inet6Address -> Bool # | |
Show Inet6Address Source # | |
Defined in System.Socket.Family.Inet6 showsPrec :: Int -> Inet6Address -> ShowS # show :: Inet6Address -> String # showList :: [Inet6Address] -> ShowS # | |
Storable Inet6Address Source # | |
Defined in System.Socket.Family.Inet6 sizeOf :: Inet6Address -> Int # alignment :: Inet6Address -> Int # peekElemOff :: Ptr Inet6Address -> Int -> IO Inet6Address # pokeElemOff :: Ptr Inet6Address -> Int -> Inet6Address -> IO () # peekByteOff :: Ptr b -> Int -> IO Inet6Address # pokeByteOff :: Ptr b -> Int -> Inet6Address -> IO () # peek :: Ptr Inet6Address -> IO Inet6Address # poke :: Ptr Inet6Address -> Inet6Address -> IO () # |
Inet6Port
Instances
Enum Inet6Port Source # | |
Defined in System.Socket.Family.Inet6 succ :: Inet6Port -> Inet6Port # pred :: Inet6Port -> Inet6Port # fromEnum :: Inet6Port -> Int # enumFrom :: Inet6Port -> [Inet6Port] # enumFromThen :: Inet6Port -> Inet6Port -> [Inet6Port] # enumFromTo :: Inet6Port -> Inet6Port -> [Inet6Port] # enumFromThenTo :: Inet6Port -> Inet6Port -> Inet6Port -> [Inet6Port] # | |
Eq Inet6Port Source # | |
Integral Inet6Port Source # | |
Defined in System.Socket.Family.Inet6 | |
Num Inet6Port Source # | |
Defined in System.Socket.Family.Inet6 | |
Ord Inet6Port Source # | |
Defined in System.Socket.Family.Inet6 | |
Real Inet6Port Source # | |
Defined in System.Socket.Family.Inet6 toRational :: Inet6Port -> Rational # | |
Show Inet6Port Source # | |
Storable Inet6Port Source # | |
Defined in System.Socket.Family.Inet6 |
Inet6FlowInfo
data Inet6FlowInfo Source #
Instances
Inet6ScopeId
data Inet6ScopeId Source #
Instances
data family SocketAddress f Source #
The SocketAddress
type is a data family.
This allows to provide different data constructors depending on the socket
family without knowing all of them in advance or the need to extend this
core library.
SocketAddressInet inetLoopback 8080 :: SocketAddress Inet SocketAddressInet6 inet6Loopback 8080 0 0 :: SocketAddress Inet6
Instances
Custom addresses
inet6AddressFromTuple
inet6AddressFromTuple :: (Word16, Word16, Word16, Word16, Word16, Word16, Word16, Word16) -> Inet6Address Source #
Constructs a custom Inet6Address
.
inet6AddressFromTuple (0,0,0,0,0,0,0,1) == inet6Loopback
inet6AddressToTuple
inet6AddressToTuple :: Inet6Address -> (Word16, Word16, Word16, Word16, Word16, Word16, Word16, Word16) Source #
Deconstructs an Inet6Address
.
Special addresses
inet6Any
inet6Any :: Inet6Address Source #
::
inet6Loopback
inet6Loopback :: Inet6Address Source #
::1