network-bsd-2.8.1.0: POSIX network database (<netdb.h>) API
Copyright(c) The University of Glasgow 2001
LicenseBSD-3-Clause
Maintainerlibraries@haskell.org
Stabilityexperimental
Portabilitynon-portable
Safe HaskellNone
LanguageHaskell2010

Network.BSD

Description

The Network.BSD module defines Haskell bindings to network programming functionality (mostly network database operations) provided by BSD Unix derivatives.

NOTE: Some of the types are reexported from Network.Socket in order to make the network-bsd API self-contained.

Windows compatibility

The following functions are not exported by Network.BSD on the Windows platform:

Synopsis

Host names and network addresses

type HostName = String #

type HostAddress = Word32 #

data Family where #

Bundled Patterns

pattern AF_UNSPEC :: Family 
pattern AF_UNIX :: Family 
pattern AF_INET :: Family 
pattern AF_INET6 :: Family 
pattern AF_IMPLINK :: Family 
pattern AF_PUP :: Family 
pattern AF_CHAOS :: Family 
pattern AF_NS :: Family 
pattern AF_NBS :: Family 
pattern AF_ECMA :: Family 
pattern AF_DATAKIT :: Family 
pattern AF_CCITT :: Family 
pattern AF_SNA :: Family 
pattern AF_DECnet :: Family 
pattern AF_DLI :: Family 
pattern AF_LAT :: Family 
pattern AF_HYLINK :: Family 
pattern AF_APPLETALK :: Family 
pattern AF_ROUTE :: Family 
pattern AF_NETBIOS :: Family 
pattern AF_NIT :: Family 
pattern AF_802 :: Family 
pattern AF_ISO :: Family 
pattern AF_OSI :: Family 
pattern AF_NETMAN :: Family 
pattern AF_X25 :: Family 
pattern AF_AX25 :: Family 
pattern AF_OSINET :: Family 
pattern AF_GOSSIP :: Family 
pattern AF_IPX :: Family 
pattern Pseudo_AF_XTP :: Family 
pattern AF_CTF :: Family 
pattern AF_WAN :: Family 
pattern AF_SDL :: Family 
pattern AF_NETWARE :: Family 
pattern AF_NDD :: Family 
pattern AF_INTF :: Family 
pattern AF_COIP :: Family 
pattern AF_CNT :: Family 
pattern Pseudo_AF_RTIP :: Family 
pattern Pseudo_AF_PIP :: Family 
pattern AF_SIP :: Family 
pattern AF_ISDN :: Family 
pattern Pseudo_AF_KEY :: Family 
pattern AF_NATM :: Family 
pattern AF_ARP :: Family 
pattern Pseudo_AF_HDRCMPLT :: Family 
pattern AF_ENCAP :: Family 
pattern AF_LINK :: Family 
pattern AF_RAW :: Family 
pattern AF_RIF :: Family 
pattern AF_NETROM :: Family 
pattern AF_BRIDGE :: Family 
pattern AF_ATMPVC :: Family 
pattern AF_ROSE :: Family 
pattern AF_NETBEUI :: Family 
pattern AF_SECURITY :: Family 
pattern AF_PACKET :: Family 
pattern AF_ASH :: Family 
pattern AF_ECONET :: Family 
pattern AF_ATMSVC :: Family 
pattern AF_IRDA :: Family 
pattern AF_PPPOX :: Family 
pattern AF_WANPIPE :: Family 
pattern AF_BLUETOOTH :: Family 
pattern AF_CAN :: Family 

Instances

Instances details
Read Family 
Instance details

Defined in Network.Socket.Types

Methods

readsPrec :: Int -> ReadS Family

readList :: ReadS [Family]

readPrec :: ReadPrec Family

readListPrec :: ReadPrec [Family]

Show Family 
Instance details

Defined in Network.Socket.Types

Methods

showsPrec :: Int -> Family -> ShowS

show :: Family -> String

showList :: [Family] -> ShowS

Eq Family 
Instance details

Defined in Network.Socket.Types

Methods

(==) :: Family -> Family -> Bool

(/=) :: Family -> Family -> Bool

Ord Family 
Instance details

Defined in Network.Socket.Types

Methods

compare :: Family -> Family -> Ordering

(<) :: Family -> Family -> Bool

(<=) :: Family -> Family -> Bool

(>) :: Family -> Family -> Bool

(>=) :: Family -> Family -> Bool

max :: Family -> Family -> Family

min :: Family -> Family -> Family

getHostName :: IO HostName Source #

Calling getHostName returns the standard host name for the current processor, as set at boot time.

gethostname(2).

data HostEntry Source #

Representation of the POSIX hostent structure defined in netdb.h.

Constructors

HostEntry 

Fields

Instances

Instances details
NFData HostEntry Source #

Since: 2.8.1.0

Instance details

Defined in Network.BSD

Methods

rnf :: HostEntry -> ()

Storable HostEntry Source # 
Instance details

Defined in Network.BSD

Methods

sizeOf :: HostEntry -> Int

alignment :: HostEntry -> Int

peekElemOff :: Ptr HostEntry -> Int -> IO HostEntry

pokeElemOff :: Ptr HostEntry -> Int -> HostEntry -> IO ()

peekByteOff :: Ptr b -> Int -> IO HostEntry

pokeByteOff :: Ptr b -> Int -> HostEntry -> IO ()

peek :: Ptr HostEntry -> IO HostEntry

poke :: Ptr HostEntry -> HostEntry -> IO ()

Read HostEntry Source # 
Instance details

Defined in Network.BSD

Methods

readsPrec :: Int -> ReadS HostEntry

readList :: ReadS [HostEntry]

readPrec :: ReadPrec HostEntry

readListPrec :: ReadPrec [HostEntry]

Show HostEntry Source # 
Instance details

Defined in Network.BSD

Methods

showsPrec :: Int -> HostEntry -> ShowS

show :: HostEntry -> String

showList :: [HostEntry] -> ShowS

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 #

Convenience function extracting one address in a HostEntry. Returns error if HostEntry contains no addresses.

getHostEntries :: Bool -> IO [HostEntry] Source #

Retrieve list of all HostEntry via gethostent(3).

Low level functionality

setHostEntry :: Bool -> IO () Source #

sethostent(3).

getHostEntry :: IO HostEntry Source #

gethostent(3).

endHostEntry :: IO () Source #

endhostent(3).

Service names

data ServiceEntry Source #

Representation of the POSIX servent structure defined in netdb.h.

Constructors

ServiceEntry 

Fields

Instances

Instances details
NFData ServiceEntry Source #

Since: 2.8.1.0

Instance details

Defined in Network.BSD

Methods

rnf :: ServiceEntry -> ()

Storable ServiceEntry Source # 
Instance details

Defined in Network.BSD

Methods

sizeOf :: ServiceEntry -> Int

alignment :: ServiceEntry -> Int

peekElemOff :: Ptr ServiceEntry -> Int -> IO ServiceEntry

pokeElemOff :: Ptr ServiceEntry -> Int -> ServiceEntry -> IO ()

peekByteOff :: Ptr b -> Int -> IO ServiceEntry

pokeByteOff :: Ptr b -> Int -> ServiceEntry -> IO ()

peek :: Ptr ServiceEntry -> IO ServiceEntry

poke :: Ptr ServiceEntry -> ServiceEntry -> IO ()

Show ServiceEntry Source # 
Instance details

Defined in Network.BSD

Methods

showsPrec :: Int -> ServiceEntry -> ShowS

show :: ServiceEntry -> String

showList :: [ServiceEntry] -> ShowS

type ServiceName = String #

data PortNumber #

Instances

Instances details
Bounded PortNumber 
Instance details

Defined in Network.Socket.Types

Enum PortNumber 
Instance details

Defined in Network.Socket.Types

Storable PortNumber 
Instance details

Defined in Network.Socket.Types

Methods

sizeOf :: PortNumber -> Int

alignment :: PortNumber -> Int

peekElemOff :: Ptr PortNumber -> Int -> IO PortNumber

pokeElemOff :: Ptr PortNumber -> Int -> PortNumber -> IO ()

peekByteOff :: Ptr b -> Int -> IO PortNumber

pokeByteOff :: Ptr b -> Int -> PortNumber -> IO ()

peek :: Ptr PortNumber -> IO PortNumber

poke :: Ptr PortNumber -> PortNumber -> IO ()

Num PortNumber 
Instance details

Defined in Network.Socket.Types

Read PortNumber 
Instance details

Defined in Network.Socket.Types

Methods

readsPrec :: Int -> ReadS PortNumber

readList :: ReadS [PortNumber]

readPrec :: ReadPrec PortNumber

readListPrec :: ReadPrec [PortNumber]

Integral PortNumber 
Instance details

Defined in Network.Socket.Types

Real PortNumber 
Instance details

Defined in Network.Socket.Types

Methods

toRational :: PortNumber -> Rational

Show PortNumber 
Instance details

Defined in Network.Socket.Types

Methods

showsPrec :: Int -> PortNumber -> ShowS

show :: PortNumber -> String

showList :: [PortNumber] -> ShowS

Eq PortNumber 
Instance details

Defined in Network.Socket.Types

Methods

(==) :: PortNumber -> PortNumber -> Bool

(/=) :: PortNumber -> PortNumber -> Bool

Ord PortNumber 
Instance details

Defined in Network.Socket.Types

getServiceEntries :: Bool -> IO [ServiceEntry] Source #

Retrieve list of all ServiceEntry via getservent(3).

Low level functionality

getServiceEntry :: IO ServiceEntry Source #

getservent(3).

setServiceEntry :: Bool -> IO () Source #

setservent(3).

endServiceEntry :: IO () Source #

endservent(3).

Protocol names

type ProtocolName = String Source #

type ProtocolNumber = CInt #

data ProtocolEntry Source #

Representation of the POSIX protoent structure defined in netdb.h.

Constructors

ProtocolEntry 

Fields

Instances

Instances details
NFData ProtocolEntry Source #

Since: 2.8.1.0

Instance details

Defined in Network.BSD

Methods

rnf :: ProtocolEntry -> ()

Storable ProtocolEntry Source # 
Instance details

Defined in Network.BSD

Methods

sizeOf :: ProtocolEntry -> Int

alignment :: ProtocolEntry -> Int

peekElemOff :: Ptr ProtocolEntry -> Int -> IO ProtocolEntry

pokeElemOff :: Ptr ProtocolEntry -> Int -> ProtocolEntry -> IO ()

peekByteOff :: Ptr b -> Int -> IO ProtocolEntry

pokeByteOff :: Ptr b -> Int -> ProtocolEntry -> IO ()

peek :: Ptr ProtocolEntry -> IO ProtocolEntry

poke :: Ptr ProtocolEntry -> ProtocolEntry -> IO ()

Read ProtocolEntry Source # 
Instance details

Defined in Network.BSD

Methods

readsPrec :: Int -> ReadS ProtocolEntry

readList :: ReadS [ProtocolEntry]

readPrec :: ReadPrec ProtocolEntry

readListPrec :: ReadPrec [ProtocolEntry]

Show ProtocolEntry Source # 
Instance details

Defined in Network.BSD

Methods

showsPrec :: Int -> ProtocolEntry -> ShowS

show :: ProtocolEntry -> String

showList :: [ProtocolEntry] -> ShowS

getProtocolEntries :: Bool -> IO [ProtocolEntry] Source #

Retrieve list of all ProtocolEntry via getprotoent(3).

Low level functionality

setProtocolEntry :: Bool -> IO () Source #

setprotoent(3).

getProtocolEntry :: IO ProtocolEntry Source #

getprotoent(3).

endProtocolEntry :: IO () Source #

endprotoent(3).

Network names

type NetworkName = String Source #

type NetworkAddr = CULong Source #

data NetworkEntry Source #

Representation of the POSIX netent structure defined in netdb.h.

Constructors

NetworkEntry 

Fields

Instances

Instances details
NFData NetworkEntry Source #

Since: 2.8.1.0

Instance details

Defined in Network.BSD

Methods

rnf :: NetworkEntry -> ()

Storable NetworkEntry Source # 
Instance details

Defined in Network.BSD

Methods

sizeOf :: NetworkEntry -> Int

alignment :: NetworkEntry -> Int

peekElemOff :: Ptr NetworkEntry -> Int -> IO NetworkEntry

pokeElemOff :: Ptr NetworkEntry -> Int -> NetworkEntry -> IO ()

peekByteOff :: Ptr b -> Int -> IO NetworkEntry

pokeByteOff :: Ptr b -> Int -> NetworkEntry -> IO ()

peek :: Ptr NetworkEntry -> IO NetworkEntry

poke :: Ptr NetworkEntry -> NetworkEntry -> IO ()

Read NetworkEntry Source # 
Instance details

Defined in Network.BSD

Methods

readsPrec :: Int -> ReadS NetworkEntry

readList :: ReadS [NetworkEntry]

readPrec :: ReadPrec NetworkEntry

readListPrec :: ReadPrec [NetworkEntry]

Show NetworkEntry Source # 
Instance details

Defined in Network.BSD

Methods

showsPrec :: Int -> NetworkEntry -> ShowS

show :: NetworkEntry -> String

showList :: [NetworkEntry] -> ShowS

getNetworkEntries :: Bool -> IO [NetworkEntry] Source #

Get the list of network entries via getnetent(3).

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

setnetent(3).

endNetworkEntry :: IO () Source #

Close the connection to the network name database.

endnetent(3).

Interface names

ifNameToIndex :: String -> IO (Maybe Int) #