+ let (_,domain) = parts address
+ mx_result <- validate_mx resolver domain
+ if mx_result
+ then return (address, True)
+ else
+ if accept_a
+ then do
+ a_result <- validate_a resolver domain
+ return (address, a_result)
+ else
+ return (address, False)
+ else
+ return (address, False)
+
+
+-- | Append a ByteString to a file Handle, followed by a newline.
+append_handle_with_newline :: Handle -> BS.ByteString -> IO ()
+append_handle_with_newline h bs = do
+ BS.hPutStr h bs
+ BS.hPutStr h newline
+ where
+ newline = BSU.fromString "\n"