timeLastReceivedPacket = metadata.getLong("timeLastReceivedPacket", -1);
long timeLastConnected = metadata.getLong("timeLastConnected", -1);
timeLastRoutable = metadata.getLong("timeLastRoutable", -1);
if(timeLastConnected < 1 && timeLastReceivedPacket > 1)
timeLastConnected = timeLastReceivedPacket;
isConnected = new BooleanLastTrueTracker(timeLastConnected);
if(timeLastRoutable < 1 && timeLastReceivedPacket > 1)
timeLastRoutable = timeLastReceivedPacket;
peerAddedTime = metadata.getLong("peerAddedTime",
0 // missing peerAddedTime is normal: Not only do exported refs not include it, opennet peers don't either.
);
neverConnected = metadata.getBoolean("neverConnected", false);
maybeClearPeerAddedTimeOnRestart(now);
hadRoutableConnectionCount = metadata.getLong("hadRoutableConnectionCount", 0);
routableConnectionCheckCount = metadata.getLong("routableConnectionCheckCount", 0);
} else {
isConnected = new BooleanLastTrueTracker();
}
} else {
isConnected = new BooleanLastTrueTracker();
neverConnected = true;
peerAddedTime = now;
}
// populate handshakeIPs so handshakes can start ASAP
lastAttemptedHandshakeIPUpdateTime = 0;