| network-2.2.1.2: 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
Typeable HostEntry
Storable 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
Typeable ServiceEntry
Storable 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
Typeable ProtocolEntry
Storable 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
Typeable PortNumber
Storable 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
Typeable NetworkEntry
Storable 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 2.4.2