Browse Source

[2759] Return rcode=REFUSED when validation fails

Mukund Sivaraman 12 years ago
parent
commit
8354cca476

+ 5 - 1
src/lib/python/isc/ddns/session.py

@@ -867,9 +867,13 @@ class UpdateSession:
                               self.__diff.get_rrset_collection(),
                               (self.__validate_error, self.__validate_warning)):
                 raise UpdateError('Validation of the new zone failed',
-                                  self.__zname, self.__zclass, Rcode.SERVFAIL)
+                                  self.__zname, self.__zclass, Rcode.REFUSED)
             self.__diff.commit()
             return Rcode.NOERROR
+        except UpdateError:
+            # Propagate UpdateError exceptions (don't catch them in the
+            # blocks below)
+            raise
         except isc.datasrc.Error as dse:
             logger.info(LIBDDNS_UPDATE_DATASRC_COMMIT_FAILED, dse)
             return Rcode.SERVFAIL

+ 1 - 1
src/lib/python/isc/ddns/tests/session_tests.py

@@ -1489,7 +1489,7 @@ class SessionTest(SessionTestBase):
                                  RRType.CNAME, 3600,
                                  [ "cname.example.org." ])
 
-        self.check_full_handle_result(Rcode.SERVFAIL, [ new_cname ])
+        self.check_full_handle_result(Rcode.REFUSED, [ new_cname ])
 
 class SessionACLTest(SessionTestBase):
     '''ACL related tests for update session.'''