Author: toad
Date: 2008-02-27 19:10:51 +0000 (Wed, 27 Feb 2008)
New Revision: 18188

Modified:
   trunk/freenet/src/freenet/io/comm/UdpSocketHandler.java
   trunk/freenet/src/freenet/node/NodeIPDetector.java
Log:
Warn the user in a different code path, don't need to check on every call to 
the getter that we have the useralert.
Avoids some possible nasty nested locking as well as being a minor optimisation.

Modified: trunk/freenet/src/freenet/io/comm/UdpSocketHandler.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/UdpSocketHandler.java     2008-02-27 
19:06:38 UTC (rev 18187)
+++ trunk/freenet/src/freenet/io/comm/UdpSocketHandler.java     2008-02-27 
19:10:51 UTC (rev 18188)
@@ -273,6 +273,8 @@
     // FIXME this is different for IPv6 (check all uses of constant when 
fixing)
     public static final int UDP_HEADERS_LENGTH = 28;

+    public static final int MIN_MTU = 1100;
+    
     /**
      * @return The maximum packet size supported by this SocketManager, not 
including transport (UDP/IP) headers.
      */
@@ -280,9 +282,8 @@
        final int minAdvertisedMTU = node.ipDetector.getMinimumDetectedMTU();

        // We don't want the MTU detection thingy to prevent us to send 
PacketTransmits!
-       if(minAdvertisedMTU < 1100){
+       if(minAdvertisedMTU < MIN_MTU){
                Logger.error(this, "It shouldn't happen : we disabled the MTU 
detection algorithm because the advertised MTU is smallish !! 
("+node.ipDetector.getMinimumDetectedMTU()+')');
-               node.onTooLowMTU(minAdvertisedMTU, 1100);
                return MAX_ALLOWED_MTU - UDP_HEADERS_LENGTH;
        } else
                return Math.min(MAX_ALLOWED_MTU, minAdvertisedMTU) - 
UDP_HEADERS_LENGTH;

Modified: trunk/freenet/src/freenet/node/NodeIPDetector.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeIPDetector.java  2008-02-27 19:06:38 UTC 
(rev 18187)
+++ trunk/freenet/src/freenet/node/NodeIPDetector.java  2008-02-27 19:10:51 UTC 
(rev 18188)
@@ -11,6 +11,7 @@
 import freenet.config.SubConfig;
 import freenet.io.comm.FreenetInetAddress;
 import freenet.io.comm.Peer;
+import freenet.io.comm.UdpSocketHandler;
 import freenet.l10n.L10n;
 import freenet.node.useralerts.IPUndetectedUserAlert;
 import freenet.node.useralerts.InvalidAddressOverrideUserAlert;
@@ -299,6 +300,7 @@
                        if(minimumMTU > mtu && mtu > 0){
                                minimumMTU = mtu;
                                Logger.normal(this, "Reducing the MTU to 
"+minimumMTU);
+                       node.onTooLowMTU(minimumMTU, UdpSocketHandler.MIN_MTU);
                        }
                }
                redetectAddress();


Reply via email to