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();