Author: ianb
Date: 2006-07-19 11:35:55 -0600 (Wed, 19 Jul 2006)
New Revision: 1828
Modified:
FormEncode/trunk/formencode/validators.py
Log:
Applied patch from Arnaud Fontaine to catch MX lookup errors when the DNS
server itself is not available
Modified: FormEncode/trunk/formencode/validators.py
===================================================================
--- FormEncode/trunk/formencode/validators.py 2006-06-21 18:30:15 UTC (rev
1827)
+++ FormEncode/trunk/formencode/validators.py 2006-07-19 17:35:55 UTC (rev
1828)
@@ -29,6 +29,7 @@
httplib = None
urlparse = None
socket = None
+DNSError = None
from interfaces import *
from api import *
sha = random = None
@@ -1142,6 +1143,7 @@
'empty': 'Please enter an email address',
'noAt': 'An email address must contain a single @',
'badUsername': 'The username portion of the email address is invalid
(the portion before the @: %(username)s)',
+ 'socketError': 'An error occured when trying to connect to the server:
%(error)s',
'badDomain': 'The domain portion of the email address is invalid (the
portion after the @: %(domain)s)',
'domainDoesNotExist': 'The domain of the email address does not exist
(the portion after the @: %(domain)s)',
}
@@ -1185,7 +1187,19 @@
domain=splitted[1]),
value, state)
if self.resolve_domain:
- domains = mxlookup(splitted[1])
+ global socket, DNSError
+ if socket is None:
+ import socket
+
+ if DNSError is None:
+ from DNS.Base import DNSError
+
+ try:
+ domains = mxlookup(splitted[1])
+ except (socket.error, DNSError), e:
+ raise Invalid(
+ self.message('socketError', state, error=e),
+ value, state)
if not domains:
raise Invalid(
self.message('domainDoesNotExist', state,
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
FormEncode-CVS mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/formencode-cvs