@Override public void set(Boolean val) throws InvalidConfigValueException { OpennetManager o; synchronized(Node.this) { if(val == (opennet != null)) return; if(val) { try { o = opennet = new OpennetManager(Node.this, opennetCryptoConfig, System.currentTimeMillis(), isAllowedToConnectToSeednodes); } catch (NodeInitException e) { opennet = null; throw new InvalidConfigValueException(e.getMessage()); } } else { o = opennet; opennet = null; } } if(val) o.start(); else o.stop(true); ipDetector.ipDetectorManager.notifyPortChange(getPublicInterfacePorts()); } });
noderefBuf = OpennetManager.innerWaitForOpennetNoderef(xferUID, paddedLength, noderefLength, source, false, uid, true, this, node); if(noderefBuf == null) { return false; SimpleFieldSet fs = OpennetManager.validateNoderef(noderefBuf, 0, noderefLength, source, false); if(fs == null) { OpennetManager.rejectRef(uid, source, DMT.NODEREF_REJECTED_INVALID, this); return false; if(om.addNewOpennetNode(fs, ConnectionType.ANNOUNCE, true) != null) { sendOurRef(source, om.crypto.myCompressedFullRef()); } else { OpennetManager.rejectRef(uid, source, DMT.NODEREF_REJECTED_INVALID, this); return false; } catch (PeerParseException e) { Logger.warning(this, "Rejecting noderef: "+e, e); OpennetManager.rejectRef(uid, source, DMT.NODEREF_REJECTED_INVALID, this); return false; } catch (ReferenceSignatureVerificationException e) { Logger.warning(this, "Rejecting noderef: "+e, e); OpennetManager.rejectRef(uid, source, DMT.NODEREF_REJECTED_INVALID, this); return false; } catch (NotConnectedException e) {
/** Called when a connection completes. If it's an opennet peer, we may need to drop a peer * to make space. If it's a darknet peer, the connection limit for opennet peers may have * decreased so again we may need to drop a peer. */ public void onConnectedPeer(PeerNode pn) { if(pn instanceof OpennetPeerNode) { dropExcessPeers(((OpennetPeerNode)pn).linkLengthClass()); } else { // The peer count target may have decreased, so we may need to drop an opennet peer. dropAllExcessPeers(); } }
void forceAddPeer(OpennetPeerNode nodeToAddNow, boolean addAtLRU) { LinkLengthClass distance = nodeToAddNow.linkLengthClass(); LRUQueue<OpennetPeerNode> peersLRU = lruQueue(distance); synchronized(this) { if(addAtLRU) peersLRU.pushLeast(nodeToAddNow); else peersLRU.push(nodeToAddNow); oldPeers.remove(nodeToAddNow); } dropExcessPeers(distance); }
lruQueue(opn).push(opn); else node.peers.disconnectAndRemove(opn, false, false, false); Logger.minor(this, "My heavy setup ref: "+crypto.myCompressedHeavySetupRef().length); dropAllExcessPeers(); writeFile();
SimpleFieldSet ref = OpennetManager.validateNoderef(noderef, 0, noderef.length, source, false); if(ref == null || om.alreadyHaveOpennetNode(ref)) {
String msg; if(oldOpennetPeers) msg = "Read " + opennet.countOldOpennetPeers() + " old-opennet-peers from " + peersFile; else if(isOpennet) msg = "Read " + getOpennetPeers().length + " opennet peers from " + peersFile;
public OpennetPeerNode addNewOpennetNode(SimpleFieldSet fs, ConnectionType connectionType) throws FSParseException, PeerParseException, ReferenceSignatureVerificationException { // FIXME: perhaps this should throw OpennetDisabledExcemption rather than returing false? if(opennet == null) return null; return opennet.addNewOpennetNode(fs, connectionType, false); }
void dropAllExcessPeers() { for(LinkLengthClass l : LinkLengthClass.values()) dropExcessPeers(l); }
private void drawOpennetStatsBox(HTMLNode box, OpennetManager om) { box.addChild("div", "class", "infobox-header", l10n("opennetStats")); HTMLNode opennetStatsContent = box.addChild("div", "class", "infobox-content"); om.drawOpennetStatsBox(opennetStatsContent); }
private void drawSeedStatsBox(HTMLNode box, OpennetManager om) { box.addChild("div", "class", "infobox-header", l10n("seedStats")); HTMLNode opennetStatsContent = box.addChild("div", "class", "infobox-content"); om.drawSeedStatsBox(opennetStatsContent); }
target = n.random.nextDouble(); om.announce(target, new AnnouncementCallback() { private void write(String msg) { try {
Logger.error(this, "Darknet node in old opennet peers?!: "+pn); else opennet.addOldOpennetNode((OpennetPeerNode)pn); } else addPeer(pn, true, false);
if(val) { try { o = opennet = new OpennetManager(Node.this, opennetCryptoConfig, System.currentTimeMillis(), isAllowedToConnectToSeednodes); } catch (NodeInitException e) { opennet = null; opennet = new OpennetManager(this, opennetCryptoConfig, System.currentTimeMillis(), isAllowedToConnectToSeednodes); if(opennet == null) { try { o = opennet = new OpennetManager(Node.this, opennetCryptoConfig, System.currentTimeMillis(), isAllowedToConnectToSeednodes); } catch (NodeInitException e) { opennet = null;
int darkPeers = node.peers.getDarknetPeers().length; int openPeers = node.peers.getOpennetPeers().length; int oldOpenPeers = om.countOldOpennetPeers(); if(darkPeers + openPeers + oldOpenPeers == 0) {
om.stop(true); ipDetector.ipDetectorManager.notifyPortChange(getPublicInterfacePorts()); if(opennet == null) { try { o = opennet = new OpennetManager(Node.this, opennetCryptoConfig, System.currentTimeMillis(), isAllowedToConnectToSeednodes); } catch (NodeInitException e) { opennet = null; o.start(); ipDetector.ipDetectorManager.notifyPortChange(getPublicInterfacePorts());