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
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

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

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
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

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 ()

NFData HostEntry Source #

Since: 2.8.1.0

Instance details

Defined in Network.BSD

Methods

rnf :: 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 #

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
Show ServiceEntry Source # 
Instance details

Defined in Network.BSD

Methods

showsPrec :: Int -> ServiceEntry -> ShowS

show :: ServiceEntry -> String

showList :: [ServiceEntry] -> ShowS

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 ()

NFData ServiceEntry Source #

Since: 2.8.1.0

Instance details

Defined in Network.BSD

Methods

rnf :: ServiceEntry -> ()

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

Eq PortNumber 
Instance details

Defined in Network.Socket.Types

Methods

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

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

Integral PortNumber 
Instance details

Defined in Network.Socket.Types

Num PortNumber 
Instance details

Defined in Network.Socket.Types

Ord 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]

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

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 ()

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
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

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 ()

NFData ProtocolEntry Source #

Since: 2.8.1.0

Instance details

Defined in Network.BSD

Methods

rnf :: ProtocolEntry -> ()

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
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

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 ()

NFData NetworkEntry Source #

Since: 2.8.1.0

Instance details

Defined in Network.BSD

Methods

rnf :: NetworkEntry -> ()

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) #