]> gitweb.michael.orlitzky.com - email-validator.git/blobdiff - src/Main.hs
Increase the timeout from 5s to 10s.
[email-validator.git] / src / Main.hs
index fc1b1b18eba02c44d549de693cc8f3d65fd6ea1e..ac72ad513919bc932866bed73608268935ec8062 100644 (file)
@@ -33,10 +33,10 @@ import EmailAddress
 import ExitCodes (exit_input_file_doesnt_exist)
 
 
--- | Resolver parameters. We increase the default timeout from 3 to 5
+-- | Resolver parameters. We increase the default timeout from 3 to 10
 --   seconds.
 resolv_conf ::  ResolvConf
-resolv_conf = defaultResolvConf { resolvTimeout = 5 * 1000 * 1000 }
+resolv_conf = defaultResolvConf { resolvTimeout = 10 * 1000 * 1000 }
 
 -- | A list of common domains, there's no need to waste MX lookups
 --   on these.
@@ -74,9 +74,9 @@ validate_a resolver domain
 -- | Validate an email address by doing some simple syntax checks and
 --   (if those fail) an MX lookup. We don't count an A record as a mail
 --   exchanger.
-validate :: Resolver -> Bool -> Address -> IO (Address, Bool)
-validate resolver accept_a address = do
-  let valid_syntax = validate_syntax address
+validate :: Resolver -> Bool -> Bool -> Address -> IO (Address, Bool)
+validate resolver accept_a rfc5322 address = do
+  let valid_syntax = validate_syntax rfc5322 address
   if valid_syntax then do
     let (_,domain) = parts address
     mx_result <- validate_mx resolver domain
@@ -130,7 +130,8 @@ main = do
   rs <- makeResolvSeed resolv_conf
   withResolver rs $ \resolver -> do
     -- Construst a list of [IO (Address, Bool)]
-    let actions = map (validate resolver accept_a) nonempty_addresses
+    let validate' = validate resolver accept_a rfc5322
+    let actions = map validate' nonempty_addresses
     -- And compute them in parallel.
     results <- parallel actions
     stopGlobalPool