packages feed

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