From 0a1f59940a73cbd093b6dc7d518c745af11fa25d Mon Sep 17 00:00:00 2001 From: jrandom Date: Tue, 4 Oct 2005 02:05:52 +0000 Subject: [PATCH] 2005-10-03 jrandom * Properly reject unroutable IP addresses *cough* --- history.txt | 5 ++++- router/java/src/net/i2p/router/RouterVersion.java | 4 ++-- .../src/net/i2p/router/transport/TransportImpl.java | 10 +++++----- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/history.txt b/history.txt index c2effe164..a76590435 100644 --- a/history.txt +++ b/history.txt @@ -1,4 +1,7 @@ -$Id: history.txt,v 1.278 2005/10/03 13:55:10 ragnarok Exp $ +$Id: history.txt,v 1.279 2005/10/03 19:27:35 ragnarok Exp $ + +2005-10-03 jrandom + * Properly reject unroutable IP addresses *cough* 2005-10-03 rangarok * Changed default update delay to twelve hours, and enforced a minimum diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index ea7df8549..8768504ee 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -15,9 +15,9 @@ import net.i2p.CoreVersion; * */ public class RouterVersion { - public final static String ID = "$Revision: 1.253 $ $Date: 2005/09/30 18:12:57 $"; + public final static String ID = "$Revision: 1.254 $ $Date: 2005/10/01 14:20:09 $"; public final static String VERSION = "0.6.1.1"; - public final static long BUILD = 0; + public final static long BUILD = 1; public static void main(String args[]) { System.out.println("I2P Router version: " + VERSION + "-" + BUILD); System.out.println("Router ID: " + RouterVersion.ID); diff --git a/router/java/src/net/i2p/router/transport/TransportImpl.java b/router/java/src/net/i2p/router/transport/TransportImpl.java index 8d5962e28..f85ff8e4a 100644 --- a/router/java/src/net/i2p/router/transport/TransportImpl.java +++ b/router/java/src/net/i2p/router/transport/TransportImpl.java @@ -356,11 +356,11 @@ public abstract class TransportImpl implements Transport { public void recheckReachability() {} public static boolean isPubliclyRoutable(byte addr[]) { - if (addr[0] == (int)127) return false; - if (addr[0] == (int)10) return false; - if ( (addr[0] == (int)172) && (addr[1] >= (int)16) && (addr[1] <= (int)31) ) return false; - if ( (addr[0] == (int)192) && (addr[1] == (int)168) ) return false; - if (addr[0] >= (int)224) return false; // no multicast + if ((addr[0]&0xFF) == 127) return false; + if ((addr[0]&0xFF) == 10) return false; + if ( ((addr[0]&0xFF) == 172) && ((addr[1]&0xFF) >= 16) && ((addr[1]&0xFF) <= 31) ) return false; + if ( ((addr[0]&0xFF) == 192) && ((addr[1]&0xFF) == 168) ) return false; + if ((addr[0]&0xFF) >= 224) return false; // no multicast return true; // or at least possible to be true } }