-module Main
+module Main (main)
where
import Control.Concurrent.ParallelIO.Global (
getContents,
pack,
words )
-import Data.List ( (\\) )
-import Data.String.Utils (join)
+import Data.List ( (\\), intersperse )
import Network.DNS (
Domain,
FileOrNumericHost(RCHostName),
normalize,
normalizeCase,
withResolver )
-import System.Exit (ExitCode(..), exitWith)
+import System.Exit (ExitCode(ExitFailure), exitWith)
import System.IO (hPutStrLn, stderr)
-
-import CommandLine (Args(..), get_args)
+import CommandLine (
+ Args(NS,MX,delegates,no_append_root,server,timeout),
+ get_args)
import DNS (
LookupResult,
lookupMX',
lookupNS',
resolve_address )
import ExitCodes (exit_bad_server)
-import Timeout (Timeout(..))
+import Timeout (Timeout(seconds))
-- | Given a list of delegates, report results for this
(show d) ++
" delegates somewhere else: " ++
(join " " (map show leftovers))
+ where
+ -- Create one big string by joining together a list of smaller
+ -- strings and placing a delimiter between them.
+ join :: String -> [String] -> String
+ join delimiter strings = concat (intersperse delimiter strings)
main :: IO ()