From: Evan Broder Date: Fri, 7 Nov 2008 02:52:39 +0000 (-0500) Subject: In the web interface, validate names by querying against the local X-Git-Tag: 0.0.7~2 X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-web.git/commitdiff_plain/86baf5455a424dab73b0e2268d71f704631a6718?hp=e0991f3ed4c49b6067936e7c2246df790ea38d6e In the web interface, validate names by querying against the local nameserver This fixes the case where the default nameserver is caching an old value. svn path=/trunk/packages/invirt-web/; revision=1542 --- diff --git a/code/validation.py b/code/validation.py index f28603c..25031ef 100644 --- a/code/validation.py +++ b/code/validation.py @@ -273,13 +273,15 @@ def testName(user, name, machine=None): return None try: hostname = '%s.%s.' % (name, config.dns.domains[0]) + resolver = dns.resolver.Resolver() + resolver.nameservers = ['127.0.0.1'] try: - dns.resolver.query(hostname, 'A') + resolver.query(hostname, 'A') except dns.resolver.NoAnswer, e: # If we can get the TXT record, then we can verify it's # reserved. If this lookup fails, let it bubble up and be # dealt with - answer = dns.resolver.query(hostname, 'TXT') + answer = resolver.query(hostname, 'TXT') txt = answer[0].strings[0] if txt.startswith('reserved'): raise InvalidInput('name', name, 'The name you have requested has been %s. For more information, contact us at %s' % (txt, config.dns.contact)) diff --git a/debian/changelog b/debian/changelog index a9e9f18..d52aa04 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +invirt-web (0.0.7) unstable; urgency=low + + * Query against the local nameserver to be sure there's no caching of + deleted hosts + + -- Evan Broder Thu, 06 Nov 2008 21:44:27 -0500 + invirt-web (0.0.6) unstable; urgency=low * The web server needs a working AFS; make sure OpenAFS modules are