DNS improvements

This commit is contained in:
M66B 2024-01-30 07:57:01 +01:00
parent ac909f825f
commit 346c125125
1 changed files with 19 additions and 2 deletions

View File

@ -200,9 +200,20 @@ public class DnsHelper {
Log.i("DNS query name=" + type + ":" + name); Log.i("DNS query name=" + type + ":" + name);
ResolverResult<? extends Data> data = resolver.resolve(name, clazz); ResolverResult<? extends Data> data = resolver.resolve(name, clazz);
data.throwIfErrorResponse(); Log.i("DNS resolved name=" + type + ":" + name +
" success=" + data.wasSuccessful() +
" rcode=" + data.getResponseCode());
try {
data.throwIfErrorResponse();
} catch (Throwable ex) {
Log.e("DNS error message=" + ex.getMessage());
Log.e(ex);
throw ex;
}
boolean secure = (data.getUnverifiedReasons() != null); boolean secure = (data.getUnverifiedReasons() != null);
Log.i("DNS secure=" + secure + " dnssec=" + dnssec);
if (secure && dnssec) { if (secure && dnssec) {
DnssecResultNotAuthenticException ex = data.getDnssecResultNotAuthenticException(); DnssecResultNotAuthenticException ex = data.getDnssecResultNotAuthenticException();
if (ex != null) if (ex != null)
@ -268,7 +279,12 @@ public class DnsHelper {
for (DnsRecord record : result) { for (DnsRecord record : result) {
record.query = name; record.query = name;
record.secure = secure; record.secure = secure;
record.authentic = data.isAuthenticData(); try {
record.authentic = data.isAuthenticData();
} catch (Throwable ex) {
Log.w(ex);
record.authentic = false;
}
} }
if ("mx".equals(type) || "srv".equals(type)) if ("mx".equals(type) || "srv".equals(type))
@ -568,6 +584,7 @@ public class DnsHelper {
@Override @Override
public void onAnswer(@NonNull byte[] bytes, int rcode) { public void onAnswer(@NonNull byte[] bytes, int rcode) {
try { try {
Log.i("DNS rcode=" + rcode);
DnsMessage answer = new DnsMessage(bytes) DnsMessage answer = new DnsMessage(bytes)
.asBuilder() .asBuilder()
.setResponseCode(DnsMessage.RESPONSE_CODE.getResponseCode(rcode)) .setResponseCode(DnsMessage.RESPONSE_CODE.getResponseCode(rcode))