improve logging of happy eyeball (v2)

This commit is contained in:
genofire 2020-02-09 15:53:42 +01:00
parent 50c2dbd6cf
commit e6e84a705d
No known key found for this signature in database
GPG Key ID: 9D7D3C6BFF600C6A
1 changed files with 19 additions and 7 deletions

View File

@ -267,10 +267,15 @@ public class Resolver {
Result result; Result result;
if (r.size() == 1) { if (r.size() == 1) {
result = r.get(0); result = r.get(0);
result.setLogID(logID);
result.connect(); result.connect();
return result; return result;
} }
for (Result result in r) {
result.setLogID(logID);
}
ExecutorService executor = (ExecutorService) Executors.newFixedThreadPool(4); ExecutorService executor = (ExecutorService) Executors.newFixedThreadPool(4);
try { try {
@ -285,7 +290,7 @@ public class Resolver {
} }
Log.i(Config.LOGTAG, Resolver.class.getSimpleName() + ": happy eyeball (" + logID + ") cleanup"); Log.i(Config.LOGTAG, Resolver.class.getSimpleName() + ": happy eyeball (" + logID + ") cleanup");
for (Result re : r) { for (Result re : r) {
if(!re.equals(result)) re.disconnect(logID); if(!re.equals(result)) re.disconnect();
} }
}); });
disconnector.start(); disconnector.start();
@ -320,6 +325,8 @@ public class Resolver {
private int priority; private int priority;
private Socket socket; private Socket socket;
private String logID;
static Result fromRecord(SRV srv, boolean directTls) { static Result fromRecord(SRV srv, boolean directTls) {
Result result = new Result(); Result result = new Result();
result.port = srv.port; result.port = srv.port;
@ -401,21 +408,22 @@ public class Resolver {
long time = System.currentTimeMillis(); long time = System.currentTimeMillis();
this.socket.connect(addr, Config.SOCKET_TIMEOUT * 1000); this.socket.connect(addr, Config.SOCKET_TIMEOUT * 1000);
time = System.currentTimeMillis() - time; 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) { } catch (IOException e) {
this.disconnect(); this.disconnect();
} }
} }
public void disconnect() { public void disconnect() {
this.disconnect("");
}
public void disconnect(String logID) {
if (this.socket != null ) { if (this.socket != null ) {
FileBackend.close(this.socket); FileBackend.close(this.socket);
this.socket = null; this.socket = null;
if (!logID.isEmpty()) { if (!this.logID.isEmpty()) {
Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": Result (" + logID + ") disconnect: " + toString()); Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": Result (" + this.logID + ") disconnect: " + toString());
} else { } else {
Log.d(Config.LOGTAG, Resolver.class.getSimpleName() + ": Result disconnect: " + toString()); 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"); 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() { public ContentValues toContentValues() {
final ContentValues contentValues = new ContentValues(); final ContentValues contentValues = new ContentValues();
contentValues.put(IP, ip == null ? null : ip.getAddress()); contentValues.put(IP, ip == null ? null : ip.getAddress());