mirror of
https://github.com/M66B/FairEmail.git
synced 2026-03-27 11:25:13 +01:00
DNS: proper timeouts
This commit is contained in:
@@ -63,6 +63,7 @@ import java.io.InputStream;
|
||||
import java.io.OutputStream;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Socket;
|
||||
import java.net.URL;
|
||||
import java.net.UnknownHostException;
|
||||
@@ -434,7 +435,10 @@ public class DnsHelper {
|
||||
@Override
|
||||
public DnsQueryResult query(DnsMessage query, InetAddress address, int port) throws IOException {
|
||||
// https://datatracker.ietf.org/doc/html/rfc7858
|
||||
try (Socket socket = SSLSocketFactory.getDefault().createSocket(host, 853)) {
|
||||
try (Socket socket = SSLSocketFactory.getDefault().createSocket()) {
|
||||
socket.connect(new InetSocketAddress(host, 853), timeout);
|
||||
socket.setSoTimeout(timeout);
|
||||
|
||||
byte[] out = query.toArray();
|
||||
OutputStream os = socket.getOutputStream();
|
||||
os.write(out.length / 256);
|
||||
@@ -492,8 +496,8 @@ public class DnsHelper {
|
||||
request = (HttpsURLConnection) url.openConnection();
|
||||
request.setRequestMethod("GET");
|
||||
request.setRequestProperty("Content-Type", "application/dns-message");
|
||||
request.setReadTimeout(timeout * 1000);
|
||||
request.setConnectTimeout(timeout * 1000);
|
||||
request.setReadTimeout(timeout);
|
||||
request.setConnectTimeout(timeout);
|
||||
request.setDoInput(true);
|
||||
request.connect();
|
||||
|
||||
@@ -572,7 +576,7 @@ public class DnsHelper {
|
||||
});
|
||||
|
||||
try {
|
||||
if (!sem.tryAcquire(timeout, TimeUnit.SECONDS))
|
||||
if (!sem.tryAcquire(timeout, TimeUnit.MILLISECONDS))
|
||||
ex = new IOException("timeout");
|
||||
} catch (InterruptedException e) {
|
||||
ex = new IOException("interrupted");
|
||||
|
||||
Reference in New Issue
Block a user