Author: toad
Date: 2009-01-22 13:57:24 +0000 (Thu, 22 Jan 2009)
New Revision: 25207

Modified:
   trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java
   trunk/freenet/src/freenet/io/comm/Peer.java
   trunk/freenet/src/freenet/node/SeedServerPeerNode.java
Log:
Fix serious bug causing announcement failures!


Modified: trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java   2009-01-22 
09:37:32 UTC (rev 25206)
+++ trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java   2009-01-22 
13:57:24 UTC (rev 25207)
@@ -370,8 +370,10 @@
        }
 
        public FreenetInetAddress dropHostname() {
-               if(_address == null)
-                       throw new IllegalStateException("Can't dropHostname() 
if no address!");
+               if(_address == null) {
+                       Logger.error(this, "Can't dropHostname() if no 
address!");
+                       return null;
+               }
                if(hostname != null) {
                        return new FreenetInetAddress(_address);
                } else return this;

Modified: trunk/freenet/src/freenet/io/comm/Peer.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/Peer.java 2009-01-22 09:37:32 UTC (rev 
25206)
+++ trunk/freenet/src/freenet/io/comm/Peer.java 2009-01-22 13:57:24 UTC (rev 
25207)
@@ -251,6 +251,7 @@
 
        public Peer dropHostName() {
                FreenetInetAddress newAddr = addr.dropHostname();
+               if(newAddr == null) return null;
                if(addr != newAddr) {
                        return new Peer(newAddr, _port);
                } else return this;

Modified: trunk/freenet/src/freenet/node/SeedServerPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/SeedServerPeerNode.java      2009-01-22 
09:37:32 UTC (rev 25206)
+++ trunk/freenet/src/freenet/node/SeedServerPeerNode.java      2009-01-22 
13:57:24 UTC (rev 25207)
@@ -6,6 +6,7 @@
 import java.net.InetAddress;
 import java.util.ArrayList;
 
+import freenet.io.comm.FreenetInetAddress;
 import freenet.io.comm.Peer;
 import freenet.io.comm.PeerParseException;
 import freenet.io.comm.ReferenceSignatureVerificationException;
@@ -93,10 +94,15 @@
                Peer[] peers = getHandshakeIPs();
                ArrayList<InetAddress> v = new ArrayList<InetAddress>();
                for(int i=0;i<peers.length;i++) {
-                       InetAddress ia = 
peers[i].getFreenetAddress().dropHostname().getAddress();
+                       FreenetInetAddress fa = 
peers[i].getFreenetAddress().dropHostname();
+                       if(fa == null) continue;
+                       InetAddress ia = fa.getAddress();
                        if(v.contains(ia)) continue;
                        v.add(ia);
                }
+               if(v.isEmpty()) {
+                       Logger.error(this, "No valid addresses for seed node 
"+this);
+               }
                return v.toArray(new InetAddress[v.size()]);
        }
        

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to