| network-2.2.0.0: Networking-related facilities | Source code | Contents | Index
Network.BSD |
Portability | non-portable
Stability | experimental
Maintainer | libraries@haskell.org
Contents
Host names Low level functionality Service names Low level functionality Protocol names Low level functionality Port numbers Network names Low level functionality
Description
The Network.BSD module defines Haskell bindings to network programming functionality provided by BSD Unix derivatives.
Synopsis
type HostName = String
getHostName :: IO HostName
data HostEntry = HostEntry {
hostName :: HostName
hostAliases :: [HostName]
hostFamily :: Family
hostAddresses :: [HostAddress]
}
getHostByName :: HostName -> IO HostEntry
getHostByAddr :: Family -> HostAddress -> IO HostEntry
hostAddress :: HostEntry -> HostAddress
getHostEntries :: Bool -> IO [HostEntry]
setHostEntry :: Bool -> IO ()
getHostEntry :: IO HostEntry
endHostEntry :: IO ()
data ServiceEntry = ServiceEntry {
serviceName :: ServiceName
serviceAliases :: [ServiceName]
servicePort :: PortNumber
serviceProtocol :: ProtocolName
}
type ServiceName = String
getServiceByName :: ServiceName -> ProtocolName -> IO ServiceEntry
getServiceByPort :: PortNumber -> ProtocolName -> IO ServiceEntry
getServicePortNumber :: ServiceName -> IO PortNumber
getServiceEntries :: Bool -> IO [ServiceEntry]
getServiceEntry :: IO ServiceEntry
setServiceEntry :: Bool -> IO ()
endServiceEntry :: IO ()
type ProtocolName = String
type ProtocolNumber = CInt
data ProtocolEntry = ProtocolEntry {
protoName :: ProtocolName
protoAliases :: [ProtocolName]
protoNumber :: ProtocolNumber
}
getProtocolByName :: ProtocolName -> IO ProtocolEntry
getProtocolByNumber :: ProtocolNumber -> IO ProtocolEntry
getProtocolNumber :: ProtocolName -> IO ProtocolNumber
defaultProtocol :: ProtocolNumber
getProtocolEntries :: Bool -> IO [ProtocolEntry]
setProtocolEntry :: Bool -> IO ()
getProtocolEntry :: IO ProtocolEntry
endProtocolEntry :: IO ()
data PortNumber
type NetworkName = String
type NetworkAddr = CULong
data NetworkEntry = NetworkEntry {
networkName :: NetworkName
networkAliases :: [NetworkName]
networkFamily :: Family
networkAddress :: NetworkAddr
}
getNetworkByName :: NetworkName -> IO NetworkEntry
getNetworkByAddr :: NetworkAddr -> Family -> IO NetworkEntry
getNetworkEntries :: Bool -> IO [NetworkEntry]
setNetworkEntry :: Bool -> IO ()
getNetworkEntry :: IO NetworkEntry
endNetworkEntry :: IO ()
Host names
type HostName = String | Source
getHostName :: IO HostName | Source
Calling getHostName returns the standard host name for the current processor, as set at boot time.
data HostEntry | Source
Constructors
HostEntry |
hostName :: HostName |
hostAliases :: [HostName] |
hostFamily :: Family |
hostAddresses :: [HostAddress] |
Instances
Read HostEntry
Show HostEntry
Storable HostEntry
Typeable HostEntry
getHostByName :: HostName -> IO HostEntry | Source
Resolve a `HostName` to IPv4 address.
getHostByAddr :: Family -> HostAddress -> IO HostEntry | Source
Get a `HostEntry` corresponding to the given address and family. Note that only IPv4 is currently supported.
hostAddress :: HostEntry -> HostAddress | Source
getHostEntries :: Bool -> IO [HostEntry] | Source
Low level functionality
setHostEntry :: Bool -> IO () | Source
getHostEntry :: IO HostEntry | Source
endHostEntry :: IO () | Source
Service names
data ServiceEntry | Source
Constructors
ServiceEntry |
serviceName :: ServiceName |
serviceAliases :: [ServiceName] |
servicePort :: PortNumber |
serviceProtocol :: ProtocolName |
Instances
Show ServiceEntry
Storable ServiceEntry
Typeable ServiceEntry
type ServiceName = String | Source
getServiceByName :: ServiceName -> ProtocolName -> IO ServiceEntry | Source
Get service by name.
getServiceByPort :: PortNumber -> ProtocolName -> IO ServiceEntry | Source
Get the service given a `PortNumber` and `ProtocolName`.
getServicePortNumber :: ServiceName -> IO PortNumber | Source
Get the `PortNumber` corresponding to the `ServiceName`.
getServiceEntries :: Bool -> IO [ServiceEntry] | Source
Low level functionality
getServiceEntry :: IO ServiceEntry | Source
setServiceEntry :: Bool -> IO () | Source
endServiceEntry :: IO () | Source
Protocol names
type ProtocolName = String | Source
type ProtocolNumber = CInt | Source
data ProtocolEntry | Source
Constructors
ProtocolEntry |
protoName :: ProtocolName |
protoAliases :: [ProtocolName] |
protoNumber :: ProtocolNumber |
Instances
Read ProtocolEntry
Show ProtocolEntry
Storable ProtocolEntry
Typeable ProtocolEntry
getProtocolByName :: ProtocolName -> IO ProtocolEntry | Source
getProtocolByNumber :: ProtocolNumber -> IO ProtocolEntry | Source
getProtocolNumber :: ProtocolName -> IO ProtocolNumber | Source
defaultProtocol :: ProtocolNumber | Source
This is the default protocol for a given service.
getProtocolEntries :: Bool -> IO [ProtocolEntry] | Source
Low level functionality
setProtocolEntry :: Bool -> IO () | Source
getProtocolEntry :: IO ProtocolEntry | Source
endProtocolEntry :: IO () | Source
Port numbers
data PortNumber | Source
Instances
Enum PortNumber
Eq PortNumber
Integral PortNumber
Num PortNumber
Ord PortNumber
Real PortNumber
Show PortNumber
Storable PortNumber
Typeable PortNumber
Network names
type NetworkName = String | Source
type NetworkAddr = CULong | Source
data NetworkEntry | Source
Constructors
NetworkEntry |
networkName :: NetworkName |
networkAliases :: [NetworkName] |
networkFamily :: Family |
networkAddress :: NetworkAddr |
Instances
Read NetworkEntry
Show NetworkEntry
Storable NetworkEntry
Typeable NetworkEntry
getNetworkByName :: NetworkName -> IO NetworkEntry | Source
getNetworkByAddr :: NetworkAddr -> Family -> IO NetworkEntry | Source
getNetworkEntries :: Bool -> IO [NetworkEntry] | Source
Get the list of network entries.
Low level functionality
setNetworkEntry :: Bool -> IO () | Source
Open the network name database. The parameter specifies whether a connection is maintained open between various networkEntry calls
getNetworkEntry :: IO NetworkEntry | Source
endNetworkEntry :: IO () | Source
Close the connection to the network name database.
Produced by Haddock version 0.9