From e6e84a705d1ec13f4940a92c3afc9d799ebe0cce Mon Sep 17 00:00:00 2001 From: genofire Date: Sun, 9 Feb 2020 15:53:42 +0100 Subject: [PATCH] improve logging of happy eyeball (v2) --- .../siacs/conversations/utils/Resolver.java | 26 ++++++++++++++----- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/utils/Resolver.java b/src/main/java/eu/siacs/conversations/utils/Resolver.java index d9f6f6f6e..152012279 100644 --- a/src/main/java/eu/siacs/conversations/utils/Resolver.java +++ b/src/main/java/eu/siacs/conversations/utils/Resolver.java @@ -267,10 +267,15 @@ public class Resolver { Result result; if (r.size() == 1) { result = r.get(0); + result.setLogID(logID); result.connect(); return result; } + for (Result result in r) { + result.setLogID(logID); + } + ExecutorService executor = (ExecutorService) Executors.newFixedThreadPool(4); try { @@ -285,7 +290,7 @@ public class Resolver { } Log.i(Config.LOGTAG, Resolver.class.getSimpleName() + ": happy eyeball (" + logID + ") cleanup"); for (Result re : r) { - if(!re.equals(result)) re.disconnect(logID); + if(!re.equals(result)) re.disconnect(); } }); disconnector.start(); @@ -320,6 +325,8 @@ public class Resolver { private int priority; private Socket socket; + private String logID; + static Result fromRecord(SRV srv, boolean directTls) { Result result = new Result(); result.port = srv.port; @@ -401,21 +408,22 @@ public class Resolver { long time = System.currentTimeMillis(); this.socket.connect(addr, Config.SOCKET_TIMEOUT * 1000); time = System.currentTimeMillis() - time; - Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": Result connect: " + toString() + " after: " + time + " ms"); + if (!this.logID.isEmpty()) { + Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": Result (" + this.logID + ") connect: " + toString() + " after: " + time + " ms"); + } else { + Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": Result connect: " + toString() + " after: " + time + " ms"); + } } catch (IOException e) { this.disconnect(); } } public void disconnect() { - this.disconnect(""); - } - public void disconnect(String logID) { if (this.socket != null ) { FileBackend.close(this.socket); this.socket = null; - if (!logID.isEmpty()) { - Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": Result (" + logID + ") disconnect: " + toString()); + if (!this.logID.isEmpty()) { + Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": Result (" + this.logID + ") disconnect: " + toString()); } else { Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": Result disconnect: " + toString()); } @@ -443,6 +451,10 @@ public class Resolver { throw new Exception("Resolver.Result was not possible to connect - should be catched by executor"); } + public void setLogID(String logID) { + this.logID = logID; + } + public ContentValues toContentValues() { final ContentValues contentValues = new ContentValues(); contentValues.put(IP, ip == null ? null : ip.getAddress());