Author: toad
Date: 2007-12-05 23:52:04 +0000 (Wed, 05 Dec 2007)
New Revision: 16346
Modified:
trunk/freenet/src/freenet/node/FNPPacketMangler.java
trunk/freenet/src/freenet/node/NodeCrypto.java
Log:
Fix receiving anon 2/4
Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java 2007-12-05
23:14:15 UTC (rev 16345)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java 2007-12-05
23:52:04 UTC (rev 16346)
@@ -260,9 +260,17 @@
pn = peers[i];
if(pn == opn) continue;
if(tryProcessAuth(buf, offset, length, pn,
peer,false, now)) return;
+ }
+ }
+ PeerNode[] anonPeers = crypto.getAnonSetupPeerNodes();
+ if(length > Node.SYMMETRIC_KEY_LENGTH /* iv */ + HASH_LENGTH +
3) {
+ for(int i=0;i<anonPeers.length;i++) {
+ pn = anonPeers[i];
+ if(pn == opn) continue;
if(tryProcessAuthAnonReply(buf, offset, length,
pn, peer, now)) return;
}
}
+
OpennetManager opennet = node.getOpennet();
if(opennet != null) {
// Try old opennet connections.
Modified: trunk/freenet/src/freenet/node/NodeCrypto.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeCrypto.java 2007-12-05 23:14:15 UTC
(rev 16345)
+++ trunk/freenet/src/freenet/node/NodeCrypto.java 2007-12-05 23:52:04 UTC
(rev 16346)
@@ -9,6 +9,7 @@
import java.math.BigInteger;
import java.net.MalformedURLException;
import java.security.MessageDigest;
+import java.util.Vector;
import java.util.zip.DeflaterOutputStream;
import net.i2p.util.NativeBigInteger;
@@ -458,4 +459,15 @@
public BlockCipher getAnonSetupCipher() {
return anonSetupCipher;
}
+
+ public PeerNode[] getAnonSetupPeerNodes() {
+ Vector v = new Vector();
+ PeerNode[] peers = node.peers.myPeers;
+ for(int i=0;i<peers.length;i++) {
+ PeerNode pn = peers[i];
+ if(pn.handshakeUnknownInitiator() &&
pn.getOutgoingMangler() == packetMangler)
+ v.add(pn);
+ }
+ return (PeerNode[]) v.toArray(new PeerNode[v.size()]);
+ }
}