+ rc' <- case (server cfg) of
+ Nothing -> return defaultResolvConf
+ Just s -> do
+ s' <- resolve_address s
+ case s' of
+ Left err -> do
+ let errmsg = show err
+ hPutStrLn stderr ("Bad DNS server or lookup error: " ++ errmsg)
+ exitWith (ExitFailure exit_bad_server)
+ Right [] -> do
+ hPutStrLn stderr ("Hostname " ++ s ++ " has no 'A' records.")
+ exitWith (ExitFailure exit_bad_server)
+ Right (srv:_) ->
+ return $ defaultResolvConf { resolvInfo =
+ RCHostName (show srv) }
+
+ -- Set the timeout from the command line. The resolvTimeout field is
+ -- in microseconds, so we multiply by one million.
+ let rc = rc' { resolvTimeout = 1000 * 1000 * seconds (timeout cfg) }