|
@@ -214,9 +214,11 @@ NameRemoveTransaction::removingFwdAddrsHandler() {
|
|
|
switch (getDnsUpdateStatus()) {
|
|
|
case DNSClient::SUCCESS: {
|
|
|
// We successfully received a response packet from the server.
|
|
|
+ // The RCODE will be based on a value-dependent RRset search,
|
|
|
+ // see RFC 2136 section 3.2.3/3.2.4.
|
|
|
const dns::Rcode& rcode = getDnsUpdateResponse()->getRcode();
|
|
|
if ((rcode == dns::Rcode::NOERROR()) ||
|
|
|
- (rcode == dns::Rcode::NXDOMAIN())) {
|
|
|
+ (rcode == dns::Rcode::NXRRSET())) {
|
|
|
// We were able to remove it or it wasn't there, now we
|
|
|
// need to remove any other RRs for this FQDN.
|
|
|
transition(REMOVING_FWD_RRS_ST, UPDATE_OK_EVT);
|
|
@@ -318,14 +320,14 @@ NameRemoveTransaction::removingFwdRRsHandler() {
|
|
|
switch (getDnsUpdateStatus()) {
|
|
|
case DNSClient::SUCCESS: {
|
|
|
// We successfully received a response packet from the server.
|
|
|
+ // The RCODE will be based on a value-dependent RRset search,
|
|
|
+ // see RFC 2136 section 3.2.3/3.2.4.
|
|
|
const dns::Rcode& rcode = getDnsUpdateResponse()->getRcode();
|
|
|
- // @todo Not sure if NXDOMAIN is ok here, but I think so.
|
|
|
- // A Rcode of NXDOMAIN would mean there are no RRs for the FQDN,
|
|
|
- // which is fine. We were asked to delete them, they are not there
|
|
|
- // so all is well.
|
|
|
if ((rcode == dns::Rcode::NOERROR()) ||
|
|
|
- (rcode == dns::Rcode::NXDOMAIN())) {
|
|
|
- // We were able to remove the forward mapping. Mark it as done.
|
|
|
+ (rcode == dns::Rcode::NXRRSET())) {
|
|
|
+ // We were able to remove them or they were not there (
|
|
|
+ // Rcode of NXRRSET means there are no matching RRsets).
|
|
|
+ // In either case, we consider it success and mark it as done.
|
|
|
setForwardChangeCompleted(true);
|
|
|
|
|
|
// If request calls for reverse update then do that next,
|
|
@@ -471,11 +473,14 @@ NameRemoveTransaction::removingRevPtrsHandler() {
|
|
|
switch (getDnsUpdateStatus()) {
|
|
|
case DNSClient::SUCCESS: {
|
|
|
// We successfully received a response packet from the server.
|
|
|
+ // The RCODE will be based on a value-dependent RRset search,
|
|
|
+ // see RFC 2136 section 3.2.3/3.2.4.
|
|
|
const dns::Rcode& rcode = getDnsUpdateResponse()->getRcode();
|
|
|
if ((rcode == dns::Rcode::NOERROR()) ||
|
|
|
- (rcode == dns::Rcode::NXDOMAIN())) {
|
|
|
- // We were able to update the reverse mapping. Mark it as done.
|
|
|
- // @todo For now we are also treating NXDOMAIN as success.
|
|
|
+ (rcode == dns::Rcode::NXRRSET())) {
|
|
|
+ // We were able to remove the reverse mapping or they were
|
|
|
+ // not there (Rcode of NXRRSET means there are no matching
|
|
|
+ // RRsets). In either case, mark it as done.
|
|
|
setReverseChangeCompleted(true);
|
|
|
transition(PROCESS_TRANS_OK_ST, UPDATE_OK_EVT);
|
|
|
} else {
|