Some UI fixes for Https server
This commit is contained in:
parent
fdd28b6b6d
commit
c4d53d6c77
@ -121,7 +121,7 @@ public class DNSServersFragment extends ToolbarFragment {
|
|||||||
CustomDNSServer server = Daedalus.configurations.getCustomDNSServers().get(position);
|
CustomDNSServer server = Daedalus.configurations.getCustomDNSServers().get(position);
|
||||||
holder.setIndex(position);
|
holder.setIndex(position);
|
||||||
holder.textViewName.setText(server.getName());
|
holder.textViewName.setText(server.getName());
|
||||||
holder.textViewAddress.setText(server.getAddress() + ":" + server.getPort());
|
holder.textViewAddress.setText(server.getRealName());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -153,12 +153,14 @@ public class DNSTestFragment extends ToolbarFragment {
|
|||||||
|
|
||||||
|
|
||||||
private StringBuilder testServer(DnsQuery dnsQuery, Record.TYPE type, AbstractDNSServer server, String domain, StringBuilder testText) {
|
private StringBuilder testServer(DnsQuery dnsQuery, Record.TYPE type, AbstractDNSServer server, String domain, StringBuilder testText) {
|
||||||
Logger.debug("Testing DNS server " + server.getAddress() + ":" + server.getPort());
|
Logger.debug("Testing DNS server " + server.getRealName());
|
||||||
testText.append(getString(R.string.test_domain)).append(" ").append(domain).append("\n").append(getString(R.string.test_dns_server)).append(" ").append(server.getAddress()).append(":").append(server.getPort());
|
testText.append(getString(R.string.test_domain)).append(" ").append(domain).append("\n")
|
||||||
|
.append(getString(R.string.test_dns_server)).append(" ").append(server.getRealName());
|
||||||
|
|
||||||
mHandler.obtainMessage(DnsTestHandler.MSG_DISPLAY_STATUS, testText.toString()).sendToTarget();
|
mHandler.obtainMessage(DnsTestHandler.MSG_DISPLAY_STATUS, testText.toString()).sendToTarget();
|
||||||
|
|
||||||
boolean succ = false;
|
boolean succ = false;
|
||||||
|
if (!server.isHttpsServer()) {//TODO: DoH Server Test
|
||||||
try {
|
try {
|
||||||
DnsMessage.Builder message = DnsMessage.builder()
|
DnsMessage.Builder message = DnsMessage.builder()
|
||||||
.addQuestion(new Question(domain, type))
|
.addQuestion(new Question(domain, type))
|
||||||
@ -186,6 +188,7 @@ public class DNSTestFragment extends ToolbarFragment {
|
|||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
Logger.logException(e);
|
Logger.logException(e);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!succ){
|
if (!succ){
|
||||||
testText.append("\n").append(getString(R.string.test_failed));
|
testText.append("\n").append(getString(R.string.test_failed));
|
||||||
|
@ -48,10 +48,12 @@ public class HttpsIetfProvider extends HttpsProvider {
|
|||||||
whqList.add(new WaitingHttpsRequest(parsedPacket) {
|
whqList.add(new WaitingHttpsRequest(parsedPacket) {
|
||||||
@Override
|
@Override
|
||||||
public void doRequest() {
|
public void doRequest() {
|
||||||
|
final int id = message.id;
|
||||||
final byte[] rawRequest = message.toArray();
|
final byte[] rawRequest = message.toArray();
|
||||||
Request request = new Request.Builder()
|
Request request = new Request.Builder()
|
||||||
.url(HttpUrl.parse(HTTPS_SUFFIX + uri).newBuilder()
|
.url(HttpUrl.parse(HTTPS_SUFFIX + uri).newBuilder()
|
||||||
.addQueryParameter("dns", Base64.encodeToString(rawRequest, Base64.DEFAULT))
|
.addQueryParameter("dns", Base64.encodeToString(
|
||||||
|
message.asBuilder().setId(0).build().toArray(), Base64.DEFAULT))
|
||||||
.build())
|
.build())
|
||||||
.get()
|
.get()
|
||||||
.build();
|
.build();
|
||||||
@ -65,7 +67,8 @@ public class HttpsIetfProvider extends HttpsProvider {
|
|||||||
@Override
|
@Override
|
||||||
public void onResponse(Call call, Response response) throws IOException {
|
public void onResponse(Call call, Response response) throws IOException {
|
||||||
if (response.isSuccessful()) {
|
if (response.isSuccessful()) {
|
||||||
result = response.body().bytes();
|
result = new DnsMessage(response.body().bytes()).asBuilder()
|
||||||
|
.setId(id).build().toArray();
|
||||||
completed = true;
|
completed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -128,7 +128,7 @@ public class HttpsJsonProvider extends HttpsProvider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
result = msg.build().toArray();
|
result = msg.setQrFlag(true).build().toArray();
|
||||||
completed = true;
|
completed = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -77,18 +77,16 @@ abstract public class HttpsProvider extends Provider {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
boolean writeToDevice = false;
|
|
||||||
Iterator<WaitingHttpsRequest> iterator = whqList.iterator();
|
Iterator<WaitingHttpsRequest> iterator = whqList.iterator();
|
||||||
while (iterator.hasNext()) {
|
while (iterator.hasNext()) {
|
||||||
WaitingHttpsRequest request = iterator.next();
|
WaitingHttpsRequest request = iterator.next();
|
||||||
if (request.completed) {
|
if (request.completed) {
|
||||||
writeToDevice = true;
|
|
||||||
handleDnsResponse(request.packet, request.result);
|
handleDnsResponse(request.packet, request.result);
|
||||||
iterator.remove();
|
iterator.remove();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (writeToDevice) {
|
if ((deviceFd.revents & OsConstants.POLLOUT) != 0) {
|
||||||
Log.d(TAG, "Write to device");
|
Log.d(TAG, "Write to device");
|
||||||
writeToDevice(outputStream);
|
writeToDevice(outputStream);
|
||||||
}
|
}
|
||||||
@ -149,7 +147,7 @@ abstract public class HttpsProvider extends Provider {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (!resolve(parsedPacket, dnsMsg) && uri != null) {
|
if (!resolve(parsedPacket, dnsMsg) && uri != null) {
|
||||||
sendRequestToServer(parsedPacket, dnsMsg.asBuilder().setId(0).build(), uri);
|
sendRequestToServer(parsedPacket, dnsMsg, uri);
|
||||||
//SHOULD use a DNS ID of 0 in every DNS request (according to draft-ietf-doh-dns-over-https-11)
|
//SHOULD use a DNS ID of 0 in every DNS request (according to draft-ietf-doh-dns-over-https-11)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -181,10 +179,5 @@ abstract public class HttpsProvider extends Provider {
|
|||||||
public Iterator<WaitingHttpsRequest> iterator() {
|
public Iterator<WaitingHttpsRequest> iterator() {
|
||||||
return list.iterator();
|
return list.iterator();
|
||||||
}
|
}
|
||||||
|
|
||||||
int size() {
|
|
||||||
return list.size();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -46,4 +46,12 @@ public class AbstractDNSServer {
|
|||||||
public String toString() {
|
public String toString() {
|
||||||
return getName();
|
return getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getRealName() {
|
||||||
|
return isHttpsServer() ? address : address + ":" + port;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isHttpsServer() {
|
||||||
|
return address.contains("/");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user