mirror of
https://github.com/M66B/FairEmail.git
synced 2025-02-23 22:51:02 +00:00
DNS: proper timeouts
This commit is contained in:
parent
67d98f7e10
commit
1222d87f8b
1 changed files with 8 additions and 4 deletions
|
@ -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");
|
||||
|
|
Loading…
Reference in a new issue