Author: robert
Date: 2008-02-07 01:18:10 +0000 (Thu, 07 Feb 2008)
New Revision: 17638
Modified:
trunk/freenet/src/freenet/node/NetworkIDManager.java
Log:
process SecretPings off of the packet receiver thread
Modified: trunk/freenet/src/freenet/node/NetworkIDManager.java
===================================================================
--- trunk/freenet/src/freenet/node/NetworkIDManager.java 2008-02-07
01:05:03 UTC (rev 17637)
+++ trunk/freenet/src/freenet/node/NetworkIDManager.java 2008-02-07
01:18:10 UTC (rev 17638)
@@ -55,24 +55,27 @@
return true;
}
- public boolean handleSecretPing(Message m) {
+ public boolean handleSecretPing(final Message m) {
+ final PeerNode source=(PeerNode)m.getSource();
+ final long uid = m.getLong(DMT.UID);
+ final short htl = m.getShort(DMT.HTL);
+ final short dawnHtl=m.getShort(DMT.DAWN_HTL);
+ final int counter=m.getInt(DMT.COUNTER);
+ node.executor.execute(new Runnable() {
+ public void run() {
try {
- return _handleSecretPing(m);
+ _handleSecretPing(m, source, uid, htl, dawnHtl,
counter);
} catch (NotConnectedException e) {
Logger.normal(this, "secretPing/not connected: "+e);
- return false;
}
+ }}, "SecretPingHandler for UID "+uid+" on
"+node.getDarknetPortNumber());
+ return true;
}
/*
@throws NotConnectedException if the *source* goes away
*/
- private boolean _handleSecretPing(Message m) throws
NotConnectedException {
- PeerNode source=(PeerNode)m.getSource();
- long uid = m.getLong(DMT.UID);
- short htl = m.getShort(DMT.HTL);
- short dawnHtl=m.getShort(DMT.DAWN_HTL);
- int counter=m.getInt(DMT.COUNTER);
+ private boolean _handleSecretPing(Message m, PeerNode source, long uid,
short htl, short dawnHtl, int counter) throws NotConnectedException {
if (disableSecretPings || node.recentlyCompleted(uid)) {
source.sendAsync(DMT.createFNPRejectedLoop(uid), null,
0, null);