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()]);
+       }
 }


Reply via email to