diff --git a/build.xml b/build.xml index 04c443dd59..919a0342e7 100644 --- a/build.xml +++ b/build.xml @@ -18,6 +18,7 @@ + @@ -201,7 +202,8 @@ - + + @@ -321,24 +323,20 @@ - + - - - - - - + + @@ -376,7 +374,7 @@ - + diff --git a/core/java/src/net/i2p/time/Timestamper.java b/core/java/src/net/i2p/time/Timestamper.java index 356689f854..b3f5290e33 100644 --- a/core/java/src/net/i2p/time/Timestamper.java +++ b/core/java/src/net/i2p/time/Timestamper.java @@ -2,6 +2,7 @@ package net.i2p.time; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import java.util.StringTokenizer; import net.i2p.I2PAppContext; @@ -246,7 +247,12 @@ public class Timestamper implements Runnable { if ( (serverList == null) || (serverList.trim().length() <= 0) ) { serverList = DEFAULT_SERVER_LIST; String country = _context.getProperty(PROP_IP_COUNTRY); - if (country != null) { + if (country == null) { + country = Locale.getDefault().getCountry(); + if (country != null) + country = country.toLowerCase(); + } + if (country != null && country.length() > 0) { _priorityServers = new ArrayList(3); for (int i = 0; i < 3; i++) _priorityServers.add(i + "." + country + ".pool.ntp.org"); diff --git a/router/java/src/net/i2p/router/RouterWatchdog.java b/router/java/src/net/i2p/router/RouterWatchdog.java index cb16810224..0ad5a2c410 100644 --- a/router/java/src/net/i2p/router/RouterWatchdog.java +++ b/router/java/src/net/i2p/router/RouterWatchdog.java @@ -49,8 +49,8 @@ class RouterWatchdog implements Runnable { } private boolean shutdownOnHang() { - // prop default true - if (!Boolean.valueOf(_context.getProperty("watchdog.haltOnHang", "true")).booleanValue()) + // prop default false + if (!Boolean.valueOf(_context.getProperty("watchdog.haltOnHang")).booleanValue()) return false; // Client manager starts complaining after 10 minutes, and we run every minute, @@ -94,7 +94,7 @@ class RouterWatchdog implements Runnable { long used = Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory(); _log.error("Memory: " + DataHelper.formatSize(used) + '/' + DataHelper.formatSize(max)); if (_consecutiveErrors == 1) { - _log.log(Log.CRIT, "Router appears hung! Will restart in 20 minutes if it doesn't fix itself"); + _log.log(Log.CRIT, "Router appears hung, or there is severe network congestion. Watchdog starts barking!"); // This might work on linux... // It won't on windows, and we can't call i2prouter.bat either, it does something // completely different... diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java index 37503ecac4..31d6dc04be 100644 --- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java +++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java @@ -1069,8 +1069,8 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade { buf.append("Address(es): "); String country = _context.commSystem().getCountry(info.getIdentity().getHash()); if(country != null) { - buf.append(" \"").append(country.toUpperCase()).append("\"");"); + buf.append("\"").append(country.toUpperCase()).append("\""); "); } for (Iterator iter = info.getAddresses().iterator(); iter.hasNext(); ) { RouterAddress addr = (RouterAddress)iter.next(); diff --git a/router/java/src/net/i2p/router/transport/TransportImpl.java b/router/java/src/net/i2p/router/transport/TransportImpl.java index 77a9bf323d..2dbd9af3a9 100644 --- a/router/java/src/net/i2p/router/transport/TransportImpl.java +++ b/router/java/src/net/i2p/router/transport/TransportImpl.java @@ -106,6 +106,9 @@ public abstract class TransportImpl implements Transport { ! ((FloodfillNetworkDatabaseFacade)_context.netDb()).floodfillEnabled()) def = MAX_CONNECTION_FACTOR * (1 + bw - Router.CAPABILITY_BW12); } + // increase limit for SSU, for now + if (style.equals("udp")) + def = def * 4 / 3; return _context.getProperty("i2np." + style + ".maxConnections", def); } diff --git a/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java b/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java index 24ac63c6b2..3f9e5acfc4 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java +++ b/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java @@ -51,7 +51,8 @@ public class EventPumper implements Runnable { * the time to iterate across them to check a few flags shouldn't be a problem. */ private static final long FAILSAFE_ITERATION_FREQ = 2*1000l; - private static final long MIN_EXPIRE_IDLE_TIME = 5*60*1000l; + /** tunnel test is every 30-60s, so this should be longer than, say, 3*45s to allow for drops */ + private static final long MIN_EXPIRE_IDLE_TIME = 3*60*1000l; private static final long MAX_EXPIRE_IDLE_TIME = 15*60*1000l; public EventPumper(RouterContext ctx, NTCPTransport transport) { diff --git a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java index fc34ab5fc8..9845a72f34 100644 --- a/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java +++ b/router/java/src/net/i2p/router/tunnel/pool/TunnelPoolManager.java @@ -458,7 +458,7 @@ public class TunnelPoolManager implements TunnelManagerFacade { else out.write("n/a"); if (cfg.getReceiveFrom() != null) - out.write("" + netDbLink(cfg.getReceiveFrom()) +""); + out.write("" + netDbLink(cfg.getReceiveFrom()) +""); else out.write(" "); if (cfg.getSendTunnel() != null) @@ -466,7 +466,7 @@ public class TunnelPoolManager implements TunnelManagerFacade { else out.write(" "); if (cfg.getSendTo() != null) - out.write("" + netDbLink(cfg.getSendTo()) +""); + out.write("" + netDbLink(cfg.getSendTo()) +""); else out.write(" "); long timeLeft = cfg.getExpiration()-_context.clock().now(); @@ -603,7 +603,7 @@ public class TunnelPoolManager implements TunnelManagerFacade { out.write("

Tunnel Counts By Peer:

\n"); out.write("\n"); for (Hash h : peerList) { - out.write("
PeerExpl. + Client% of totalPart. from + to% of total
"); + out.write("
"); out.write(netDbLink(h)); out.write("" + lc.count(h)); out.write(""); diff --git a/router/java/src/org/cybergarage/xml/Parser.java b/router/java/src/org/cybergarage/xml/Parser.java index 2c9b3861bb..0268f3e29c 100644 --- a/router/java/src/org/cybergarage/xml/Parser.java +++ b/router/java/src/org/cybergarage/xml/Parser.java @@ -104,7 +104,7 @@ public abstract class Parser public Node parse(String descr) throws ParserException { try { - StringBufferInputStream decrIn = new StringBufferInputStream(descr); + InputStream decrIn = new ByteArrayInputStream(descr.getBytes()); Node root = parse(decrIn); return root; } catch (Exception e) {