Added DNS Test method for AAAA records
This commit is contained in:
parent
97475e681d
commit
0e180537e8
@ -15,7 +15,7 @@ import de.measite.minidns.DNSMessage;
|
|||||||
import de.measite.minidns.Question;
|
import de.measite.minidns.Question;
|
||||||
import de.measite.minidns.Record;
|
import de.measite.minidns.Record;
|
||||||
import de.measite.minidns.record.A;
|
import de.measite.minidns.record.A;
|
||||||
import de.measite.minidns.record.InternetAddressRR;
|
import de.measite.minidns.record.AAAA;
|
||||||
import de.measite.minidns.source.NetworkDataSource;
|
import de.measite.minidns.source.NetworkDataSource;
|
||||||
import org.itxtech.daedalus.Daedalus;
|
import org.itxtech.daedalus.Daedalus;
|
||||||
import org.itxtech.daedalus.R;
|
import org.itxtech.daedalus.R;
|
||||||
@ -27,7 +27,6 @@ import java.net.InetAddress;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.Set;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Daedalus Project
|
* Daedalus Project
|
||||||
@ -90,35 +89,46 @@ public class DnsTestFragment extends ToolbarFragment {
|
|||||||
|
|
||||||
private StringBuilder testServer(DNSQuery dnsQuery, String dnsServer, String testUrl, StringBuilder testText) {
|
private StringBuilder testServer(DNSQuery dnsQuery, String dnsServer, String testUrl, StringBuilder testText) {
|
||||||
Log.d(TAG, "Testing DNS " + dnsServer);
|
Log.d(TAG, "Testing DNS " + dnsServer);
|
||||||
testText.append(getResources().getString(R.string.test_domain)).append(" ").append(testUrl).append("\n").append(getResources().getString(R.string.test_dns_server)).append(" ").append(dnsServer);
|
testText.append(getString(R.string.test_domain)).append(" ").append(testUrl).append("\n").append(getString(R.string.test_dns_server)).append(" ").append(dnsServer);
|
||||||
|
|
||||||
mHandler.obtainMessage(DnsTestHandler.MSG_DISPLAY_STATUS, testText.toString()).sendToTarget();
|
mHandler.obtainMessage(DnsTestHandler.MSG_DISPLAY_STATUS, testText.toString()).sendToTarget();
|
||||||
|
|
||||||
Question question = new Question(testUrl, Record.TYPE.getType(A.class));
|
DNSMessage.Builder messageA = DNSMessage.builder();
|
||||||
DNSMessage.Builder message = DNSMessage.builder();
|
messageA.addQuestion(new Question(testUrl, Record.TYPE.A));
|
||||||
message.setQuestion(question);
|
messageA.setId((new Random()).nextInt());
|
||||||
message.setId((new Random()).nextInt());
|
messageA.setRecursionDesired(true);
|
||||||
message.setRecursionDesired(true);
|
messageA.getEdnsBuilder().setUdpPayloadSize(1024).setDnssecOk(false);
|
||||||
message.getEdnsBuilder().setUdpPayloadSize(1024).setDnssecOk(false);
|
|
||||||
|
DNSMessage.Builder messageAAAA = DNSMessage.builder();
|
||||||
|
messageAAAA.addQuestion(new Question(testUrl, Record.TYPE.AAAA));
|
||||||
|
messageAAAA.setId((new Random()).nextInt());
|
||||||
|
messageAAAA.setRecursionDesired(true);
|
||||||
|
messageAAAA.getEdnsBuilder().setUdpPayloadSize(1024).setDnssecOk(false);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
long startTime = System.currentTimeMillis();
|
long startTime = System.currentTimeMillis();
|
||||||
DNSMessage responseMessage = dnsQuery.query(message.build(), InetAddress.getByName(dnsServer), 53);//Auto forward ports
|
DNSMessage responseAMessage = dnsQuery.query(messageA.build(), InetAddress.getByName(dnsServer), 53);//Auto forward ports
|
||||||
|
DNSMessage responseAAAAMessage = dnsQuery.query(messageAAAA.build(), InetAddress.getByName(dnsServer), 53);//Auto forward ports
|
||||||
long endTime = System.currentTimeMillis();
|
long endTime = System.currentTimeMillis();
|
||||||
|
|
||||||
Set<InternetAddressRR> answers = responseMessage.getAnswersFor(question);
|
if (responseAMessage.answerSection.size() > 0 || responseAAAAMessage.answerSection.size() > 0) {
|
||||||
if (answers != null && answers.size() > 0) {
|
for (Record record : responseAAAAMessage.answerSection) {
|
||||||
for (InternetAddressRR answer : answers) {
|
if (record.getPayload() instanceof AAAA) {
|
||||||
InetAddress inetAddress = answer.getInetAddress();
|
testText.append("\n").append(getString(R.string.test_result_resolved)).append(" ").append(record.getPayload().toString());
|
||||||
testText.append("\n").append(getResources().getString(R.string.test_result_resolved)).append(" ").append(inetAddress.getHostAddress());
|
|
||||||
}
|
}
|
||||||
testText.append("\n").append(getResources().getString(R.string.test_time_used)).append(" ").
|
}
|
||||||
|
for (Record record : responseAMessage.answerSection) {
|
||||||
|
if (record.getPayload() instanceof A) {
|
||||||
|
testText.append("\n").append(getString(R.string.test_result_resolved)).append(" ").append(record.getPayload().toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
testText.append("\n").append(getString(R.string.test_time_used)).append(" ").
|
||||||
append(String.valueOf(endTime - startTime)).append(" ms\n\n");
|
append(String.valueOf(endTime - startTime)).append(" ms\n\n");
|
||||||
} else {
|
} else {
|
||||||
testText.append("\n").append(getResources().getString(R.string.test_failed)).append("\n\n");
|
testText.append("\n").append(getString(R.string.test_failed)).append("\n\n");
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
testText.append("\n").append(getResources().getString(R.string.test_failed)).append("\n\n");
|
testText.append("\n").append(getString(R.string.test_failed)).append("\n\n");
|
||||||
|
|
||||||
Logger.logException(e);
|
Logger.logException(e);
|
||||||
}
|
}
|
||||||
|
@ -355,7 +355,7 @@ public class UdpDnsProvider extends DnsProvider {
|
|||||||
ip[i] = Integer.parseInt(block);
|
ip[i] = Integer.parseInt(block);
|
||||||
i++;
|
i++;
|
||||||
}
|
}
|
||||||
builder.addAnswer(new Record<>(dnsQueryName, Record.TYPE.getType(A.class), 1, 64, new A(ip[0], ip[1], ip[2], ip[3])));
|
builder.addAnswer(new Record<>(dnsQueryName, Record.TYPE.A, 1, 64, new A(ip[0], ip[1], ip[2], ip[3])));
|
||||||
handleDnsResponse(parsedPacket, builder.build().toArray());
|
handleDnsResponse(parsedPacket, builder.build().toArray());
|
||||||
} else {
|
} else {
|
||||||
Logger.info("DnsProvider: Resolving " + dnsQueryName + " Sending to " + destAddr);
|
Logger.info("DnsProvider: Resolving " + dnsQueryName + " Sending to " + destAddr);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user