improve logging of happy eyeball (v2)
This commit is contained in:
parent
50c2dbd6cf
commit
e6e84a705d
|
@ -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());
|
||||
|
|
Loading…
Reference in New Issue