In the web interface, validate names by querying against the local
authorEvan Broder <broder@mit.edu>
Fri, 7 Nov 2008 02:52:39 +0000 (21:52 -0500)
committerEvan Broder <broder@mit.edu>
Fri, 7 Nov 2008 02:52:39 +0000 (21:52 -0500)
nameserver

This fixes the case where the default nameserver is caching an old
value.

svn path=/trunk/packages/invirt-web/; revision=1542

code/validation.py
debian/changelog

index f28603c..25031ef 100644 (file)
@@ -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))
index a9e9f18..d52aa04 100644 (file)
@@ -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 <broder@mit.edu>  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