hsdns 1.4.3 → 1.5
raw patch · 6 files changed
+19/−41 lines, 6 filesdep ~networkPVP ok
version bump matches the API change (PVP)
Dependency ranges changed: network
API changes (from Hackage documentation)
- ADNS.Base: mkFlags :: (Enum a) => [a] -> CInt
+ ADNS.Base: mkFlags :: Enum a => [a] -> CInt
- ADNS.Resolver: query :: (Resolver -> a -> IO (Either Status [b])) -> (Resolver -> a -> IO (Maybe [b]))
+ ADNS.Resolver: query :: (Resolver -> a -> IO (Either Status [b])) -> Resolver -> a -> IO (Maybe [b])
Files
- ADNS.hs +1/−7
- ADNS/Resolver.hs +2/−8
- example/adns-reverse-lookup.hs +1/−10
- example/adns-srv-test.hs +12/−13
- example/adns-test-and-traverse.hs +1/−1
- hsdns.cabal +2/−2
ADNS.hs view
@@ -30,7 +30,7 @@ queryA :: Resolver -> HostName -> IO (Maybe [HostAddress]) queryA = query resolveA --- | For quering SRV records. Result is the list of tuples (host, port)+-- | For quering SRV records. Result is the list of tuples (host, port). querySRV :: Resolver -> HostName -> IO (Maybe [(HostName, PortID)]) querySRV = query resolveSRV @@ -39,9 +39,3 @@ queryMX :: Resolver -> HostName -> IO (Maybe [(HostName, HostAddress)]) queryMX = query resolveMX---- ----- Configure Emacs ----------- Local Variables: ***--- haskell-program-name: "ghci -ladns" ***--- End: ***
ADNS/Resolver.hs view
@@ -28,7 +28,7 @@ import Data.List ( sortBy ) import Data.Map ( Map ) import qualified Data.Map as Map-import Network +import Network import Network.Socket ( HostAddress ) import ADNS.Base import ADNS.Endian@@ -120,7 +120,7 @@ -- > queryA = query resolveA query :: (Resolver -> a -> IO (Either Status [b]))- -> (Resolver -> a -> IO (Maybe [b]))+ -> Resolver -> a -> IO (Maybe [b]) query f dns x = fmap toMaybe (f dns x) where toMaybe (Left rc)@@ -184,9 +184,3 @@ putMVar mv a return (RState dns (Map.delete q qs), True) when more (resolveLoop mst)---- ----- Configure Emacs ----------- Local Variables: ***--- haskell-program-name: "ghci -ladns" ***--- End: ***
example/adns-reverse-lookup.hs view
@@ -14,7 +14,6 @@ import Control.Concurrent.Chan ( Chan, newChan, writeChan, readChan ) import System.Environment ( getArgs ) import Network.Socket ( inet_ntoa )-import Data.List ( elem ) import ADNS data CheckResult@@ -35,7 +34,7 @@ when (null names) (putStrLn "Usage: hostname [hostname ...]") initResolver [NoErrPrint, NoServerWarn] $ \resolver -> do rrChannel <- newChan :: IO (Chan CheckResult)- mapM_ (\h -> forkIO (ptrCheck resolver rrChannel h)) names+ mapM_ (forkIO . ptrCheck resolver rrChannel) names replicateM_ (length names) (readChan rrChannel >>= printResult) ptrCheck :: Resolver -> Chan CheckResult -> HostName -> IO ()@@ -50,11 +49,3 @@ | otherwise -> writeChan chan (NotOK host addr names) _ -> returnError "PTR" _ -> returnError "A"------ ----- Configure Emacs ----------- Local Variables: ***--- haskell-program-name: "ghci -ladns" ***--- End: ***
example/adns-srv-test.hs view
@@ -1,28 +1,27 @@ {-- Resolve a hostnames' SRV records, then show it+ Resolve a hostnames' SRV records, then show it.++ TODO: Add the ability to perform multiple requests. -} module Main ( main ) where import Control.Monad ( when ) import System.Environment ( getArgs )-import Network.Socket ( inet_ntoa )-import Data.List ( elem )+import Network ( PortID(..) ) import ADNS main :: IO () main = do names <- getArgs- when (null names) (putStrLn "Usage: hostname [hostname ...]")+ when (length names /= 1) (fail "Usage: hostname") initResolver [Debug] $ \resolver -> do- a <- querySRV resolver $ head names+ a <- querySRV resolver (head names) case a of- Just addr -> do- putStrLn $ "RESULT:\n" ++ (concat $ map (\b -> (fst b) ++ (show $ snd b) ++ "\n") addr)- _ -> putStrLn $ "Error in SRV " ++ (show a)+ Just addr -> putStrLn $ "RESULT:\n" ++ concatMap (\b -> fst b ++ ":" ++ showPortID (snd b)) addr+ _ -> fail $ "Error in SRV " ++ show (head names) --- ----- Configure Emacs ----------- Local Variables: ***--- haskell-program-name: "ghci -ladns" ***--- End: ***+showPortID :: PortID -> String+showPortID (PortNumber p) = show p+showPortID (UnixSocket str) = str+showPortID (Service str) = str
example/adns-test-and-traverse.hs view
@@ -1,4 +1,4 @@-module Main where+module Main ( main ) where import ADNS import ADNS.Base
hsdns.cabal view
@@ -1,5 +1,5 @@ Name: hsdns-Version: 1.4.3+Version: 1.5 Copyright: (c) 2004-2010 Peter Simons License: LGPL License-File: COPYING.LESSER@@ -31,7 +31,7 @@ > OK: www.example.com <-> 192.0.32.10 Cabal-Version: >= 1.6 Build-Type: Simple-Tested-With: GHC == 6.12.1+Tested-With: GHC == 6.12.3 Extra-Source-Files: example/adns-reverse-lookup.hs example/adns-srv-test.hs