From 80877f80fa19d59620353fbbd2fcc81bd457212a Mon Sep 17 00:00:00 2001 From: Will Paul Date: Mon, 1 Apr 2024 15:24:02 -0400 Subject: [PATCH] ISSUE-316 Fix caching for CNAME and DNAME This is a WIP, I tried to come up with a test, but don't know the internals well enough atm to do so. I did manually test for my use case and it does seem to be caching responses, but haven't verified TTLs are handled to spec. --- src/main/java/org/xbill/DNS/SetResponse.java | 6 +++--- src/main/java/org/xbill/DNS/lookup/LookupSession.java | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/xbill/DNS/SetResponse.java b/src/main/java/org/xbill/DNS/SetResponse.java index 3fbf8552..0cfa7e56 100644 --- a/src/main/java/org/xbill/DNS/SetResponse.java +++ b/src/main/java/org/xbill/DNS/SetResponse.java @@ -142,10 +142,10 @@ public boolean isSuccessful() { /** If the query was successful, return the answers */ public List answers() { - if (type != SUCCESSFUL) { - return null; + if (type == SUCCESSFUL || type == CNAME || type == DNAME) { + return data; } - return data; + return null; } /** If the query encountered a CNAME, return it. */ diff --git a/src/main/java/org/xbill/DNS/lookup/LookupSession.java b/src/main/java/org/xbill/DNS/lookup/LookupSession.java index 2ffa815c..14aa82c9 100644 --- a/src/main/java/org/xbill/DNS/lookup/LookupSession.java +++ b/src/main/java/org/xbill/DNS/lookup/LookupSession.java @@ -502,7 +502,7 @@ private CompletionStage setResponseToMessageFuture( return completeExceptionally( new NoSuchRRSetException(queryRecord.getName(), queryRecord.getType())); } - if (setResponse.isSuccessful()) { + if (setResponse.isSuccessful() || setResponse.isCNAME() || setResponse.isDNAME()) { List records = setResponse.answers().stream() .flatMap(rrset -> rrset.rrs(cycleResults).stream())