From b465011045685e095f7adab0f7860421add0bc62 Mon Sep 17 00:00:00 2001 From: genofire Date: Thu, 13 Feb 2020 14:58:56 +0100 Subject: [PATCH] happy eyeball: fix connection without dns --- .../siacs/conversations/utils/Resolver.java | 23 +++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/utils/Resolver.java b/src/main/java/eu/siacs/conversations/utils/Resolver.java index 2c71afe4c..7c4237ebf 100644 --- a/src/main/java/eu/siacs/conversations/utils/Resolver.java +++ b/src/main/java/eu/siacs/conversations/utils/Resolver.java @@ -80,7 +80,12 @@ public class Resolver { public static Result fromHardCoded(String hostname, int port) { final Result ipResult = fromIpAddress(hostname, port); if (ipResult != null) { - ipResult.connect(); + try { + ipResult.connect(); + } catch (Exception e) { + Log.i(Config.LOGTAG, Resolver.class.getSimpleName() + ": from hardcoded unable to connect: "+ e); + return null; + } return ipResult; } return happyEyeball(resolveNoSrvRecords(DNSName.from(hostname), port, true)); @@ -94,7 +99,12 @@ public class Resolver { public static Result resolve(String domain) { final Result ipResult = fromIpAddress(domain, DEFAULT_PORT_XMPP); if (ipResult != null) { - ipResult.connect(); + try { + ipResult.connect(); + } catch (Exception e) { + Log.i(Config.LOGTAG, Resolver.class.getSimpleName() + ": from hardcoded unable to connect: "+ e); + return null; + } return ipResult; } final List results = new ArrayList<>(); @@ -304,7 +314,12 @@ public class Resolver { if (r.size() == 1) { result = r.get(0); result.setLogID(logID); - result.connect(); + try { + result.connect(); + } catch (Exception e) { + Log.i(Config.LOGTAG, Resolver.class.getSimpleName() + ": from hardcoded unable to connect: "+ e); + return null; + } return result; } @@ -361,7 +376,7 @@ public class Resolver { private int priority; private Socket socket; - private String logID; + private String logID = ""; static Result fromRecord(SRV srv, boolean directTls) { Result result = new Result();