Author: toad
Date: 2008-12-09 15:05:38 +0000 (Tue, 09 Dec 2008)
New Revision: 24139
Modified:
trunk/freenet/src/freenet/node/Announcer.java
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/NodeDispatcher.java
trunk/freenet/src/freenet/node/OpennetManager.java
trunk/freenet/src/freenet/node/PacketSender.java
trunk/freenet/src/freenet/node/PeerManager.java
trunk/freenet/src/freenet/node/SeedClientPeerNode.java
trunk/freenet/src/freenet/node/SeedServerPeerNode.java
Log:
Add a boolean for purge from old-opennet-peers to PeerManager.disconnect().
Set this to true if we accept an old-opennet-peer and then dump it, hence if
one side drops the other side from the bottom of the LRU, the dropped side will
not keep trying to reconnect.
Set it to true on dropping the LRU peer.
Modified: trunk/freenet/src/freenet/node/Announcer.java
===================================================================
--- trunk/freenet/src/freenet/node/Announcer.java 2008-12-09 14:53:21 UTC
(rev 24138)
+++ trunk/freenet/src/freenet/node/Announcer.java 2008-12-09 15:05:38 UTC
(rev 24139)
@@ -331,7 +331,7 @@
}
if(enoughPeers()) {
for(SeedServerPeerNode pn :
node.peers.getConnectedSeedServerPeersVector(null)) {
-
node.peers.disconnect(pn, true, true);
+
node.peers.disconnect(pn, true, true, false);
}
// Re-check every minute.
Something bad might happen (e.g. cpu starvation), causing us to have to reseed.
node.getTicker().queueTimedJob(new Runnable() {
@@ -511,7 +511,7 @@
// If it takes more than COOLING_OFF_PERIOD to
disconnect, we might not be able to reannounce to this
// node. However, we can't reannounce to it
anyway until announcedTo is cleared, which probably will
// be more than that period in the future.
- node.peers.disconnect(seed, true, false);
+ node.peers.disconnect(seed, true, false, false);
System.out.println("Announcement to
"+seed.userToString()+" completed.");
if(announceNow)
maybeSendAnnouncement();
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2008-12-09
14:53:21 UTC (rev 24138)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2008-12-09
15:05:38 UTC (rev 24139)
@@ -1222,7 +1222,7 @@
c, Ke, Ka, authenticator, hisRef, pn,
replyTo, unknownInitiator, setupType, newTrackerID, newTrackerID == trackerID);
if(dontWant)
- node.peers.disconnect(pn, true, false); // Let
it connect then tell it to remove it.
+ node.peers.disconnect(pn, true, false, true);
// Let it connect then tell it to remove it.
else
pn.maybeSendInitialMessages();
} else {
@@ -1438,7 +1438,7 @@
c.initialize(pn.jfkKs);
if(pn.completedHandshake(bootID, hisRef, 0, hisRef.length, c,
pn.jfkKs, replyTo, false, negType, trackerID, true, reusedTracker) >= 0) {
if(dontWant)
- node.peers.disconnect(pn, true, false);
+ node.peers.disconnect(pn, true, false, true);
else
pn.maybeSendInitialMessages();
} else {
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2008-12-09 14:53:21 UTC (rev
24138)
+++ trunk/freenet/src/freenet/node/Node.java 2008-12-09 15:05:38 UTC (rev
24139)
@@ -3263,7 +3263,7 @@
}
public void removePeerConnection(PeerNode pn) {
- peers.disconnect(pn, true, false);
+ peers.disconnect(pn, true, false, false);
}
public void onConnectedPeer() {
Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java 2008-12-09 14:53:21 UTC
(rev 24138)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java 2008-12-09 15:05:38 UTC
(rev 24139)
@@ -314,7 +314,7 @@
// Otherwise just dump all current connection state and keep
trying to connect.
boolean remove = m.getBoolean(DMT.REMOVE);
if(remove)
- node.peers.disconnect(source, false, false);
+ node.peers.disconnect(source, false, false, false);
// If true, purge all references to this node. Otherwise, we
can keep the node
// around in secondary tables etc in order to more easily
reconnect later.
// (Mostly used on opennet)
Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java 2008-12-09 14:53:21 UTC
(rev 24138)
+++ trunk/freenet/src/freenet/node/OpennetManager.java 2008-12-09 15:05:38 UTC
(rev 24139)
@@ -395,7 +395,7 @@
}
for(OpennetPeerNode pn : dropList) {
if(logMINOR) Logger.minor(this, "Dropping LRU opennet
peer: "+pn);
- node.peers.disconnect(pn, true, true);
+ node.peers.disconnect(pn, true, true, true);
}
return canAdd;
}
@@ -411,7 +411,7 @@
peersLRU.remove(toDrop);
if(logMINOR)
Logger.minor(this, "Dropping "+toDrop);
- node.peers.disconnect(toDrop, true, true);
+ node.peers.disconnect(toDrop, true, true, true);
}
}
@@ -464,7 +464,7 @@
}
}
if(!wantPeer(pn, false, false, false)) // Start at top as it
just succeeded
- node.peers.disconnect(pn, true, false);
+ node.peers.disconnect(pn, true, false, true);
}
public void onRemove(OpennetPeerNode pn) {
Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java 2008-12-09 14:53:21 UTC
(rev 24138)
+++ trunk/freenet/src/freenet/node/PacketSender.java 2008-12-09 15:05:38 UTC
(rev 24139)
@@ -235,7 +235,7 @@
pn.maybeOnConnect();
if(pn.shouldDisconnectAndRemoveNow() &&
!pn.isDisconnecting()) {
// Might as well do it properly.
- node.peers.disconnect(pn, true, true);
+ node.peers.disconnect(pn, true, true, false);
}
if(pn.shouldThrottle() && !canSendThrottled)
continue;
Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java 2008-12-09 14:53:21 UTC
(rev 24138)
+++ trunk/freenet/src/freenet/node/PeerManager.java 2008-12-09 15:05:38 UTC
(rev 24139)
@@ -477,7 +477,7 @@
/**
* Disconnect from a specified node
*/
- public void disconnect(final PeerNode pn, boolean
sendDisconnectMessage, final boolean waitForAck) {
+ public void disconnect(final PeerNode pn, boolean
sendDisconnectMessage, final boolean waitForAck, boolean purge) {
if(logMINOR)
Logger.minor(this, "Disconnecting " +
pn.shortToString());
synchronized(this) {
@@ -486,7 +486,7 @@
}
pn.notifyDisconnecting();
if(sendDisconnectMessage) {
- Message msg = DMT.createFNPDisconnect(true, false, -1,
new ShortBuffer(new byte[0]));
+ Message msg = DMT.createFNPDisconnect(true, purge, -1,
new ShortBuffer(new byte[0]));
try {
pn.sendAsync(msg, new AsyncMessageCallback() {
Modified: trunk/freenet/src/freenet/node/SeedClientPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/SeedClientPeerNode.java 2008-12-09
14:53:21 UTC (rev 24138)
+++ trunk/freenet/src/freenet/node/SeedClientPeerNode.java 2008-12-09
15:05:38 UTC (rev 24139)
@@ -85,7 +85,7 @@
@Override
public boolean disconnected(boolean dumpMessageQueue, boolean
dumpTrackers) {
boolean ret = super.disconnected(dumpMessageQueue,
dumpTrackers);
- node.peers.disconnect(this, false, false);
+ node.peers.disconnect(this, false, false, false);
return ret;
}
Modified: trunk/freenet/src/freenet/node/SeedServerPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/SeedServerPeerNode.java 2008-12-09
14:53:21 UTC (rev 24138)
+++ trunk/freenet/src/freenet/node/SeedServerPeerNode.java 2008-12-09
15:05:38 UTC (rev 24139)
@@ -73,7 +73,7 @@
final OpennetManager om = node.getOpennet();
if(om == null) {
Logger.normal(this, "Opennet turned off while
connecting to seednodes");
- node.peers.disconnect(this, true, true);
+ node.peers.disconnect(this, true, true, true);
} else {
// Wait 5 seconds. Another node may connect first, we
don't want all the
// announcements to go to the node which we connect to
most quickly.
@@ -113,7 +113,7 @@
@Override
public boolean disconnected(boolean dumpMessageQueue, boolean
dumpTrackers) {
boolean ret = super.disconnected(dumpMessageQueue,
dumpTrackers);
- node.peers.disconnect(this, false, false);
+ node.peers.disconnect(this, false, false, false);
return ret;
}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs