public int countSeednodes() { int count = 0; for(PeerNode peer : myPeers()) { if(peer instanceof SeedServerPeerNode || peer instanceof SeedClientPeerNode) count++; } return count; }
public PeerNode[] getPeerNodes() { return peers.myPeers(); }
public PeerNode getByPubKeyHash(byte[] pkHash) { PeerNode[] peers = myPeers(); for(PeerNode peer : peers) { if(Arrays.equals(peer.peerECDSAPubKeyHash, pkHash)) return peer; } return null; }
public List<SeedServerPeerNode> getSeedServerPeersVector() { PeerNode[] peers = myPeers(); // FIXME optimise! Maybe maintain as a separate list? List<SeedServerPeerNode> v = new ArrayList<SeedServerPeerNode>(peers.length); for(PeerNode peer : peers) { if(peer instanceof SeedServerPeerNode) v.add((SeedServerPeerNode)peer); } return v; }
/** * Get the opennet peers list. */ public OpennetPeerNode[] getOpennetPeers() { PeerNode[] peers = myPeers(); // FIXME optimise! Maybe maintain as a separate list? ArrayList<PeerNode> v = new ArrayList<PeerNode>(peers.length); for(PeerNode peer: peers) { if(peer instanceof OpennetPeerNode) v.add(peer); } return v.toArray(new OpennetPeerNode[v.size()]); }
public PeerNode[] getOpennetAndSeedServerPeers() { PeerNode[] peers = myPeers(); // FIXME optimise! Maybe maintain as a separate list? ArrayList<PeerNode> v = new ArrayList<PeerNode>(peers.length); for(PeerNode peer: peers) { if(peer instanceof OpennetPeerNode) v.add(peer); else if(peer instanceof SeedServerPeerNode) v.add(peer); } return v.toArray(new PeerNode[v.size()]); }
/** * Get the darknet peers list. * FIXME: optimise */ public DarknetPeerNode[] getDarknetPeers() { PeerNode[] peers = myPeers(); // FIXME optimise! Maybe maintain as a separate list? ArrayList<PeerNode> v = new ArrayList<PeerNode>(peers.length); for(PeerNode peer: peers) { if(peer instanceof DarknetPeerNode) v.add(peer); } return v.toArray(new DarknetPeerNode[v.size()]); }
/** Registers a listener to be notified when peers' statuses changes * @param listener - the listener to be registered*/ public void addPeerStatusChangeListener(PeerStatusChangeListener listener){ listeners.add(listener); for(PeerNode pn:myPeers()){ pn.registerPeerNodeStatusChangeListener(listener); } }
public int getNumARKFetchers() { int x = 0; for(PeerNode p: peers.myPeers()) { if(p.isFetchingARK()) x++; } return x; }
public PeerNodeStatus[] getPeerNodeStatuses(boolean noHeavy) { PeerNode[] peers = myPeers(); PeerNodeStatus[] _peerNodeStatuses = new PeerNodeStatus[peers.length]; for(int peerIndex = 0, peerCount = peers.length; peerIndex < peerCount; peerIndex++) { _peerNodeStatuses[peerIndex] = peers[peerIndex].getStatus(noHeavy); } return _peerNodeStatuses; }
/** Count the number of PeerNode's with a given status (right now, not * based on a snapshot). Note you should not call this if holding lots * of locks! */ public int countByStatus(int status) { int count = 0; PeerNode[] peers = myPeers(); for(PeerNode peer : peers) { if(peer.getPeerNodeStatus() == status) count++; } return count; }
public int countConnectedPeers() { int count = 0; PeerNode[] peers = myPeers(); for(PeerNode peer: peers) { if(peer == null) continue; if(!peer.isRoutable()) continue; count++; } return count; }
public PeerNode[] getAnonSetupPeerNodes() { ArrayList<PeerNode> v = new ArrayList<PeerNode>(); for(PeerNode pn: node.peers.myPeers()) { if(pn.handshakeUnknownInitiator() && pn.getOutgoingMangler() == packetMangler) v.add(pn); } return v.toArray(new PeerNode[v.size()]); }
protected String getDarknetPeersString() { StringBuilder sb = new StringBuilder(); PeerNode[] peers = myPeers(); for(PeerNode pn : peers) { if(pn instanceof DarknetPeerNode) sb.append(pn.exportDiskFieldSet().toOrderedString()); } return sb.toString(); }
protected String getOpennetPeersString() { StringBuilder sb = new StringBuilder(); PeerNode[] peers = myPeers(); for(PeerNode pn : peers) { if(pn instanceof OpennetPeerNode) sb.append(pn.exportDiskFieldSet().toOrderedString()); } return sb.toString(); }
/** * Connect to a node provided the fieldset representing it. * @throws PeerTooOldException */ public void connect(SimpleFieldSet noderef, OutgoingPacketMangler mangler, FRIEND_TRUST trust, FRIEND_VISIBILITY visibility) throws FSParseException, PeerParseException, ReferenceSignatureVerificationException, PeerTooOldException { PeerNode pn = node.createNewDarknetNode(noderef, trust, visibility); PeerNode[] peerList = myPeers(); for(PeerNode mp: peerList) { if(Arrays.equals(mp.peerECDSAPubKeyHash, pn.peerECDSAPubKeyHash)) return; } addPeer(pn); }
@Override public void run() { freenet.support.Logger.OSThread.logPID(this); for(PeerNode pn: peers.myPeers()) { pn.updateVersionRoutablity(); } } }, transition - now);
/** Notifies the listeners about status change*/ private void notifyPeerStatusChangeListeners(){ for(PeerStatusChangeListener l:listeners){ l.onPeerStatusChange(); for(PeerNode pn:myPeers()){ pn.registerPeerNodeStatusChangeListener(l); } } }
/** * How many peers do we have that actually may connect? Don't include seednodes, disabled nodes, etc. */ public int countValidPeers() { PeerNode[] peers = myPeers(); int count = 0; for(PeerNode peer: peers) { if(!peer.isRealConnection()) continue; if(peer.isDisabled()) continue; count++; } return count; }
public int countBackedOffPeers(boolean realTime) { PeerNode[] peers = myPeers(); int count = 0; for(PeerNode peer : peers) { if(!peer.isRealConnection()) continue; if(peer.isDisabled()) continue; if(peer.isRoutingBackedOff(realTime)) count++; } return count; }