Author: toad
Date: 2008-09-18 18:53:17 +0000 (Thu, 18 Sep 2008)
New Revision: 22692

Modified:
   trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java
   trunk/freenet/src/freenet/node/NodeIPDetector.java
Log:
Really fix the NPE on startup bug.
Possibly also fix a bug relating to override dyndns addresses.


Modified: trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java   2008-09-18 
16:15:25 UTC (rev 22691)
+++ trunk/freenet/src/freenet/io/comm/FreenetInetAddress.java   2008-09-18 
18:53:17 UTC (rev 22692)
@@ -374,4 +374,8 @@
                        return new FreenetInetAddress(getAddress());
                } else return this;
        }
+
+       public boolean hasHostnameNoIP() {
+               return hostname != null && hostname.length() > 0 && _address == 
null;
+       }
 }

Modified: trunk/freenet/src/freenet/node/NodeIPDetector.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeIPDetector.java  2008-09-18 16:15:25 UTC 
(rev 22691)
+++ trunk/freenet/src/freenet/node/NodeIPDetector.java  2008-09-18 18:53:17 UTC 
(rev 22692)
@@ -133,9 +133,11 @@
                if(dumpLocalAddresses) {
                        ArrayList filtered = new 
ArrayList(lastIPAddress.length);
                        for(int i=0;i<lastIPAddress.length;i++) {
-                               if(lastIPAddress[i] == null) continue;
-                               
if(IPUtil.isValidAddress(lastIPAddress[i].getAddress(), false))
+                               if(lastIPAddress[i].hasHostnameNoIP()) {
                                        filtered.add(lastIPAddress[i]);
+                               } else if(lastIPAddress[i] == null) continue;
+                               else 
if(IPUtil.isValidAddress(lastIPAddress[i].getAddress(), false))
+                                       filtered.add(lastIPAddress[i]);
                        }
                        return (FreenetInetAddress[]) filtered.toArray(new 
FreenetInetAddress[filtered.size()]);
                }


Reply via email to