public boolean isOutdated() { int tooNewDarknet = getPeerNodeStatusSize(PEER_NODE_STATUS_TOO_NEW, true); if(tooNewDarknet >= OUTDATED_MIN_TOO_NEW_DARKNET) return true; int tooNewOpennet = getPeerNodeStatusSize(PEER_NODE_STATUS_TOO_NEW, false); // FIXME arbitrary constants. // We cannot count on the version announcements. // Until we actually get a validated update jar it's all potentially bogus. int connections = getPeerNodeStatusSize(PEER_NODE_STATUS_CONNECTED, false) + getPeerNodeStatusSize(PEER_NODE_STATUS_ROUTING_BACKED_OFF, false); if(tooNewOpennet >= OUTDATED_MIN_TOO_NEW_TOTAL) { return connections < OUTDATED_MAX_CONNS; } else return false; }
public boolean updateIsUrgent() { OpennetManager om = getOpennet(); if(om != null) { if(om.announcer != null && om.announcer.isWaitingForUpdater()) return true; } if(peers.getPeerNodeStatusSize(PeerManager.PEER_NODE_STATUS_TOO_NEW, true) > PeerManager.OUTDATED_MIN_TOO_NEW_DARKNET) return true; return false; }
ua.opennetAssumeNAT = opennetAssumeNAT; ua.darknetAssumeNAT = darknetAssumeNAT; ua.darknetConns = getPeerNodeStatusSize(PEER_NODE_STATUS_CONNECTED, true) + getPeerNodeStatusSize(PEER_NODE_STATUS_ROUTING_BACKED_OFF, true); ua.conns = getPeerNodeStatusSize(PEER_NODE_STATUS_CONNECTED, false) + getPeerNodeStatusSize(PEER_NODE_STATUS_ROUTING_BACKED_OFF, false); ua.darknetPeers = darknetPeers; ua.disconnDarknetPeers = darknetPeers - ua.darknetConns; ua.peers = peers; ua.neverConn = getPeerNodeStatusSize(PEER_NODE_STATUS_NEVER_CONNECTED, true); ua.clockProblem = getPeerNodeStatusSize(PEER_NODE_STATUS_CLOCK_PROBLEM, false); ua.connError = getPeerNodeStatusSize(PEER_NODE_STATUS_CONN_ERROR, true); ua.isOpennetEnabled = opennetEnabled; ua.tooNewPeersDarknet = getPeerNodeStatusSize(PEER_NODE_STATUS_TOO_NEW, true); ua.tooNewPeersTotal = getPeerNodeStatusSize(PEER_NODE_STATUS_TOO_NEW, false);
if(node.peers.getPeerNodeStatusSize(PeerManager.PEER_NODE_STATUS_TOO_NEW, false) > 10) { synchronized(this) { if(killedAnnouncementTooOld) return true; if(node.nodeUpdater.isEnabled() && node.nodeUpdater.isArmed() && node.nodeUpdater.uom.fetchingFromTwo() && node.peers.getPeerNodeStatusSize(PeerManager.PEER_NODE_STATUS_TOO_NEW, false) > 5) {
int numberOfConnected = getPeerNodeStatusSize(PEER_NODE_STATUS_CONNECTED, false); int numberOfRoutingBackedOff = getPeerNodeStatusSize(PEER_NODE_STATUS_ROUTING_BACKED_OFF, false); if(numberOfRoutingBackedOff + numberOfConnected > 0) node.nodeStats.backedOffPercent.report((double) numberOfRoutingBackedOff / (double) (numberOfRoutingBackedOff + numberOfConnected));