YARN-8365. Set DNS query type according to client request. Contributed by Shane Kumpf
(cherry picked from commit 5889a3c0f931ebe1a9e6b8023c0557922b7d9e49) Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/9dd79d1d Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/9dd79d1d Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/9dd79d1d Branch: refs/remotes/origin/branch-3.1 Commit: 9dd79d1dcd46a96ada8ea560d20334b2f7a6b247 Parents: 93d6ed8 Author: Eric Yang <ey...@apache.org> Authored: Mon Jun 4 19:01:17 2018 -0400 Committer: Eric Yang <ey...@apache.org> Committed: Mon Jun 4 19:03:07 2018 -0400 ---------------------------------------------------------------------- .../org/apache/hadoop/registry/server/dns/RegistryDNS.java | 9 +++++---- .../apache/hadoop/registry/server/dns/TestRegistryDNS.java | 9 ++------- 2 files changed, 7 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/9dd79d1d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java index c322023..5e994fb 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/main/java/org/apache/hadoop/registry/server/dns/RegistryDNS.java @@ -1106,7 +1106,7 @@ public class RegistryDNS extends AbstractService implements DNSOperations, LOG.debug("calling addAnswer"); byte rcode = addAnswer(response, name, type, dclass, 0, flags); if (rcode != Rcode.NOERROR) { - rcode = remoteLookup(response, name, 0); + rcode = remoteLookup(response, name, type, 0); response.getHeader().setRcode(rcode); } addAdditional(response, flags); @@ -1124,9 +1124,10 @@ public class RegistryDNS extends AbstractService implements DNSOperations, /** * Lookup record from upstream DNS servers. */ - private byte remoteLookup(Message response, Name name, int iterations) { + private byte remoteLookup(Message response, Name name, int type, + int iterations) { // Forward lookup to primary DNS servers - Record[] answers = getRecords(name, Type.ANY); + Record[] answers = getRecords(name, type); try { for (Record r : answers) { if (r.getType() == Type.SOA) { @@ -1137,7 +1138,7 @@ public class RegistryDNS extends AbstractService implements DNSOperations, if (r.getType() == Type.CNAME) { Name cname = ((CNAMERecord) r).getAlias(); if (iterations < 6) { - remoteLookup(response, cname, iterations + 1); + remoteLookup(response, cname, Type.CNAME, iterations + 1); } } } http://git-wip-us.apache.org/repos/asf/hadoop/blob/9dd79d1d/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/test/java/org/apache/hadoop/registry/server/dns/TestRegistryDNS.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/test/java/org/apache/hadoop/registry/server/dns/TestRegistryDNS.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/test/java/org/apache/hadoop/registry/server/dns/TestRegistryDNS.java index 01adc45..6ba58dd 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/test/java/org/apache/hadoop/registry/server/dns/TestRegistryDNS.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-registry/src/test/java/org/apache/hadoop/registry/server/dns/TestRegistryDNS.java @@ -424,13 +424,8 @@ public class TestRegistryDNS extends Assert { assertEquals("Questions do not match", query.getQuestion(), response.getQuestion()); Record[] recs = response.getSectionArray(Section.ANSWER); - boolean found = false; - for (Record r : recs) { - if (r.getType()==Type.A) { - found = true; - } - } - assertTrue("No A records in answer", found); + assertEquals(1, recs.length); + assertEquals(recs[0].getType(), type); return recs; } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org