-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | A name resolusion library -- -- Please see README.org @package resolve @version 0.1.0.0 module Resolve.Types type Resolve a b = a -> IO b data Resolver a b Resolver :: Resolve a b -> IO () -> Resolver a b [resolve] :: Resolver a b -> Resolve a b [delete] :: Resolver a b -> IO () data ResolveException [ResolveException] :: Exception e => e -> ResolveException resolveExceptionToException :: Exception e => e -> SomeException resolveExceptionFromException :: Typeable * b => SomeException -> Maybe b instance GHC.Show.Show Resolve.Types.ResolveException instance GHC.Exception.Exception Resolve.Types.ResolveException module Resolve.Timeout data Timeout Timeout :: Timeout timeout :: Int -> Resolve a b -> Resolve a b instance GHC.Show.Show Resolve.Timeout.Timeout instance GHC.Exception.Exception Resolve.Timeout.Timeout module Resolve.Retry data RetryOut RetryOut :: RetryOut retry :: Int -> Resolve a b -> Resolve a b instance GHC.Show.Show Resolve.Retry.RetryOut instance GHC.Exception.Exception Resolve.Retry.RetryOut module Resolve.Log log :: (Show a, Show b) => (String -> IO ()) -> (String -> IO ()) -> Resolve a b -> Resolve a b module Resolve.DNS.Types data DNSException [DNSException] :: Exception e => e -> DNSException dnsExceptionToException :: Exception e => e -> SomeException dnsExceptionFromException :: Typeable * b => SomeException -> Maybe b type LABEL = ByteString newtype NAME NAME :: [LABEL] -> NAME qclass_word :: [(QCLASS, Word16)] class_word :: [(CLASS, Word16)] qtype_word :: [(QTYPE, Word16)] opcode_word :: [(OPCODE, BV)] rcode_word :: [(RCODE, BV)] qr_word :: [(QR, Bool)] data Message Message :: Header -> [Question] -> [RR] -> [RR] -> [RR] -> Message [header] :: Message -> Header [question] :: Message -> [Question] [answer] :: Message -> [RR] [authority] :: Message -> [RR] [additional] :: Message -> [RR] data Header Header :: Word16 -> QR -> OPCODE -> Bool -> Bool -> Bool -> Bool -> Word8 -> RCODE -> Header [ident] :: Header -> Word16 [qr] :: Header -> QR [opcode] :: Header -> OPCODE [aa] :: Header -> Bool [tc] :: Header -> Bool [rd] :: Header -> Bool [ra] :: Header -> Bool [zero] :: Header -> Word8 [rcode] :: Header -> RCODE data QR Query :: QR Response :: QR toBool :: QR -> Bool data OPCODE STD :: OPCODE INV :: OPCODE SSR :: OPCODE data RCODE NoErr :: RCODE FormatErr :: RCODE ServFail :: RCODE NameErr :: RCODE NotImpl :: RCODE Refused :: RCODE Other :: Word8 -> RCODE data CLASS IN :: CLASS CH :: CLASS HS :: CLASS OTHER :: Word16 -> CLASS data QCLASS CLASS :: CLASS -> QCLASS ANY :: QCLASS data QTYPE Q_A :: QTYPE Q_NS :: QTYPE Q_CNAME :: QTYPE Q_SOA :: QTYPE Q_PTR :: QTYPE Q_MX :: QTYPE Q_TXT :: QTYPE Q_AXFR :: QTYPE Q_ALL :: QTYPE Q_OTHER :: Word16 -> QTYPE data Question Question :: NAME -> QTYPE -> QCLASS -> Question [qname] :: Question -> NAME [qtype] :: Question -> QTYPE [qclass] :: Question -> QCLASS data RR RR :: NAME -> Word32 -> RDATA -> RR [name] :: RR -> NAME [ttl] :: RR -> Word32 [rdata] :: RR -> RDATA data RDATA_COM CNAME :: NAME -> RDATA_COM MX :: Word16 -> NAME -> RDATA_COM NS :: NAME -> RDATA_COM PTR :: NAME -> RDATA_COM SOA :: NAME -> NAME -> Word32 -> Word32 -> Word32 -> Word32 -> Word32 -> RDATA_COM TXT :: [ByteString] -> RDATA_COM data RDATA RR_COM :: CLASS -> RDATA_COM -> RDATA RR_A :: IPv4 -> RDATA RR_OTHER :: CLASS -> Word16 -> ByteString -> RDATA instance GHC.Show.Show Resolve.DNS.Types.Message instance GHC.Classes.Eq Resolve.DNS.Types.Message instance GHC.Show.Show Resolve.DNS.Types.RR instance GHC.Classes.Eq Resolve.DNS.Types.RR instance GHC.Show.Show Resolve.DNS.Types.RDATA instance GHC.Classes.Ord Resolve.DNS.Types.RDATA instance GHC.Classes.Eq Resolve.DNS.Types.RDATA instance GHC.Show.Show Resolve.DNS.Types.RDATA_COM instance GHC.Classes.Ord Resolve.DNS.Types.RDATA_COM instance GHC.Classes.Eq Resolve.DNS.Types.RDATA_COM instance GHC.Show.Show Resolve.DNS.Types.Question instance GHC.Classes.Eq Resolve.DNS.Types.Question instance GHC.Classes.Ord Resolve.DNS.Types.QTYPE instance GHC.Show.Show Resolve.DNS.Types.QTYPE instance GHC.Classes.Eq Resolve.DNS.Types.QTYPE instance GHC.Classes.Ord Resolve.DNS.Types.QCLASS instance GHC.Show.Show Resolve.DNS.Types.QCLASS instance GHC.Classes.Eq Resolve.DNS.Types.QCLASS instance GHC.Classes.Ord Resolve.DNS.Types.CLASS instance GHC.Show.Show Resolve.DNS.Types.CLASS instance GHC.Classes.Eq Resolve.DNS.Types.CLASS instance GHC.Show.Show Resolve.DNS.Types.Header instance GHC.Classes.Eq Resolve.DNS.Types.Header instance GHC.Show.Show Resolve.DNS.Types.RCODE instance GHC.Classes.Ord Resolve.DNS.Types.RCODE instance GHC.Classes.Eq Resolve.DNS.Types.RCODE instance GHC.Enum.Bounded Resolve.DNS.Types.OPCODE instance GHC.Show.Show Resolve.DNS.Types.OPCODE instance GHC.Classes.Eq Resolve.DNS.Types.OPCODE instance GHC.Show.Show Resolve.DNS.Types.QR instance GHC.Classes.Eq Resolve.DNS.Types.QR instance GHC.Classes.Ord Resolve.DNS.Types.NAME instance GHC.Classes.Eq Resolve.DNS.Types.NAME instance GHC.Show.Show Resolve.DNS.Types.DNSException instance GHC.Exception.Exception Resolve.DNS.Types.DNSException instance GHC.Show.Show Resolve.DNS.Types.NAME module Resolve.DNS.Server.Types data ServerException [ServerException] :: Exception e => e -> ServerException serverExceptionToException :: Exception e => e -> SomeException serverExceptionFromException :: Typeable * b => SomeException -> Maybe b instance GHC.Show.Show Resolve.DNS.Server.Types.ServerException instance GHC.Exception.Exception Resolve.DNS.Server.Types.ServerException module Resolve.DNS.Encode fromCLASS :: CLASS -> Word16 fromQCLASS :: QCLASS -> Word16 fromQTYPE :: QTYPE -> Word16 fromOPCODE :: OPCODE -> BitVector fromRCODE :: RCODE -> BitVector fromQR :: QR -> Bool type SPut a = a -> Either String Builder type Put a = a -> Builder encode :: SPut a -> a -> Either String ByteString message :: SPut Message header :: Put (Header, Word16, Word16, Word16, Word16) label :: SPut LABEL name :: SPut NAME qtype :: Put QTYPE qclass :: Put QCLASS question :: SPut Question rr :: SPut RR instance Data.Hashable.Class.Hashable Resolve.DNS.Types.QCLASS instance Data.Hashable.Class.Hashable Resolve.DNS.Types.QTYPE module Resolve.DNS.Decode toCLASS :: Word16 -> CLASS toQCLASS :: Word16 -> QCLASS toQTYPE :: Word16 -> QTYPE toOPCODE :: BitVector -> OPCODE toRCODE :: BitVector -> RCODE toQR :: Bool -> QR type SGet = ReaderT ByteString Parser decodeMessage :: ByteString -> Either String Message message :: SGet Message toBool :: (Eq a, Num a) => a -> Bool isEnd :: Word8 -> Bool extractNAME :: ByteString -> Int -> Either String NAME name :: SGet NAME charString :: SGet ByteString rr :: SGet RR qname :: SGet NAME qtype :: Parser QTYPE qclass :: Parser QCLASS question :: SGet Question header :: Parser (Header, Word16, Word16, Word16, Word16) module Resolve.DNS.Server.TCP data DecodeError DecodeError :: String -> DecodeError data EncodeError EncodeError :: String -> EncodeError encodeMessage :: Message -> ByteString resolve :: Resolve Message Message -> Resolve ByteString ByteString instance GHC.Show.Show Resolve.DNS.Server.TCP.EncodeError instance GHC.Show.Show Resolve.DNS.Server.TCP.DecodeError instance GHC.Exception.Exception Resolve.DNS.Server.TCP.DecodeError instance GHC.Exception.Exception Resolve.DNS.Server.TCP.EncodeError module Resolve.DNS.Server.UDP data DecodeError DecodeError :: String -> DecodeError data EncodeError EncodeError :: String -> EncodeError data ResponseTooLong ResponseTooLong :: ResponseTooLong maxLength :: Int64 encodeMessage :: Message -> ByteString resolve :: Resolve Message Message -> Resolve ByteString ByteString instance GHC.Show.Show Resolve.DNS.Server.UDP.ResponseTooLong instance GHC.Show.Show Resolve.DNS.Server.UDP.EncodeError instance GHC.Show.Show Resolve.DNS.Server.UDP.DecodeError instance GHC.Exception.Exception Resolve.DNS.Server.UDP.DecodeError instance GHC.Exception.Exception Resolve.DNS.Server.UDP.EncodeError instance GHC.Exception.Exception Resolve.DNS.Server.UDP.ResponseTooLong module Resolve.DNS.Channel nameM :: [Char] type Send = ByteString -> IO () type Recv = IO ByteString data EncodeError EncodeError :: String -> EncodeError data Dead Dead :: Dead data Config Config :: Send -> Recv -> String -> Config [send] :: Config -> Send [recv] :: Config -> Recv [nick] :: Config -> String data Resolver Resolver :: ThreadId -> Map Word16 (TMVar Message) -> Config -> TVar Bool -> Resolver [tid] :: Resolver -> ThreadId [book] :: Resolver -> Map Word16 (TMVar Message) [config] :: Resolver -> Config [dead] :: Resolver -> TVar Bool new :: Config -> IO (Resolver Message Message) delete :: Resolver -> IO () resolve :: Resolver -> Message -> IO Message allocate :: (Eq i, Hashable i, Num i) => Map i a -> i -> a -> STM i lookupAndDelete :: (Eq i, Hashable i) => Map i a -> i -> STM (Maybe a) instance GHC.Show.Show Resolve.DNS.Channel.Dead instance GHC.Show.Show Resolve.DNS.Channel.EncodeError instance GHC.Exception.Exception Resolve.DNS.Channel.EncodeError instance GHC.Exception.Exception Resolve.DNS.Channel.Dead module Resolve.DNS.TCP nameM :: [Char] data Config Config :: Socket -> Config [socket] :: Config -> Socket data Closed Closed :: Closed new :: Config -> IO (Resolver Message Message) instance GHC.Show.Show Resolve.DNS.TCP.Closed instance GHC.Exception.Exception Resolve.DNS.TCP.Closed module Resolve.DNS.Helper.TCP data Config Config :: HostName -> ServiceName -> Config [host] :: Config -> HostName [port] :: Config -> ServiceName new :: Config -> IO (Resolver Message Message) module Resolve.DNS.LiveTCP nameM :: [Char] data Config Config :: Family -> ProtocolNumber -> SockAddr -> Config [family] :: Config -> Family [protocol] :: Config -> ProtocolNumber [server] :: Config -> SockAddr data Record Record :: Resolver Message Message -> Unique -> Socket -> Record [resolver] :: Record -> Resolver Message Message [unique] :: Record -> Unique [sock] :: Record -> Socket new :: Config -> IO (Resolver Message Message) instance GHC.Show.Show Resolve.DNS.LiveTCP.Config module Resolve.DNS.Helper.LiveTCP data Config Config :: HostName -> ServiceName -> Config [host] :: Config -> HostName [port] :: Config -> ServiceName lname :: [Char] new :: Config -> IO (Resolver Message Message) module Resolve.DNS.UDP nameM :: [Char] data Config Config :: Socket -> SockAddr -> Config [socket] :: Config -> Socket [server] :: Config -> SockAddr data QueryTooLong QueryTooLong :: QueryTooLong maxLength :: Int new :: Config -> IO (Resolver Message Message) instance GHC.Show.Show Resolve.DNS.UDP.QueryTooLong instance GHC.Exception.Exception Resolve.DNS.UDP.QueryTooLong module Resolve.DNS.Helper.UDP data Config Config :: HostName -> ServiceName -> Config [host] :: Config -> HostName [port] :: Config -> ServiceName new :: Config -> IO (Resolver Message Message) module Resolve.DNS.Truncation nameM :: [Char] data Config Config :: Resolve Message Message -> Resolve Message Message -> Config [udp] :: Config -> Resolve Message Message [tcp] :: Config -> Resolve Message Message truncation :: Config -> Resolve Message Message module Resolve.DNS.Helper.DNS data Config Config :: HostName -> ServiceName -> Config [host] :: Config -> HostName [port] :: Config -> ServiceName new :: Config -> IO (Resolver Message Message)