Author: dbkr
Date: 2006-02-27 23:25:20 +0000 (Mon, 27 Feb 2006)
New Revision: 8137
Modified:
trunk/freenet/src/freenet/node/PeerNode.java
trunk/freenet/src/freenet/node/Version.java
Log:
478: Fixes that could prevent nodes from being able to connect to each other.
Null pointer checks and off-by-one in PeerNode.getHandshakeIPs.
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-02-25 16:57:56 UTC
(rev 8136)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-02-27 23:25:20 UTC
(rev 8137)
@@ -324,17 +324,17 @@
p= new Peer[1+nominalPeer.size()];
p[0]=detectedPeer;
for(int i=1;i<nominalPeer.size()+1;i++)
- p[i]=(Peer) nominalPeer.get(i);
+ p[i]=(Peer) nominalPeer.get(i-1);
}else{
p = (Peer[]) nominalPeer.toArray(new Peer[nominalPeer.size()]);
}
// Hack for two nodes on the same IP that can't talk over inet for
routing reasons
InetAddress localhost = node.localhostAddress;
InetAddress nodeIP = node.getPrimaryIPAddress();
- if(nodeIP.equals(localhost)) return p;
+ if(nodeIP != null && nodeIP.equals(localhost)) return p;
InetAddress peerIP = detectedPeer.getAddress();
if(peerIP.equals(localhost)) return p;
- if(nodeIP.equals(peerIP)) {
+ if(nodeIP != null && nodeIP.equals(peerIP)) {
Peer[] newPeers = new Peer[p.length+1];
System.arraycopy(p, 0, newPeers, 0, p.length);
newPeers[newPeers.length-1] = new Peer(node.localhostAddress,
detectedPeer.getPort());
Modified: trunk/freenet/src/freenet/node/Version.java
===================================================================
--- trunk/freenet/src/freenet/node/Version.java 2006-02-25 16:57:56 UTC (rev
8136)
+++ trunk/freenet/src/freenet/node/Version.java 2006-02-27 23:25:20 UTC (rev
8137)
@@ -20,7 +20,7 @@
public static final String protocolVersion = "1.0";
/** The build number of the current revision */
- private static final int buildNumber = 477;
+ private static final int buildNumber = 478;
/** Oldest build of Fred we will talk to */
private static final int lastGoodBuild = 475;