From 405b85c4b438de30a71749cfe42f645f90611117 Mon Sep 17 00:00:00 2001 From: zzz Date: Sun, 11 Oct 2009 22:51:43 +0000 Subject: [PATCH] Cleanups after review and prep for release --- .../java/src/org/klomp/snark/Piece.java | 6 +-- .../org/klomp/snark/web/I2PSnarkServlet.java | 8 +-- .../net/i2p/router/web/ConfigUIHandler.java | 2 +- .../src/net/i2p/router/web/SummaryHelper.java | 4 +- core/c/jbigi/build.sh | 2 +- core/java/src/net/i2p/stat/Rate.java | 8 +++ history.txt | 5 ++ initialNews.xml | 4 +- installer/install.xml | 2 +- news.xml | 51 +++++++------------ .../src/net/i2p/router/RouterVersion.java | 4 +- .../router/transport/udp/PeerTestManager.java | 3 +- .../router/transport/udp/UDPTransport.java | 1 - .../router/tunnel/TunnelGatewayZeroHop.java | 10 ++-- 14 files changed, 49 insertions(+), 61 deletions(-) diff --git a/apps/i2psnark/java/src/org/klomp/snark/Piece.java b/apps/i2psnark/java/src/org/klomp/snark/Piece.java index b08ea3476..3fd0771f9 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/Piece.java +++ b/apps/i2psnark/java/src/org/klomp/snark/Piece.java @@ -24,11 +24,7 @@ public class Piece implements Comparable { public boolean equals(Object o) { if (o instanceof Piece) { if (o == null) return false; - try { - return this.id == ((Piece)o).id; - } catch (ClassCastException cce) { - return false; - } + return this.id == ((Piece)o).id; } return false; } diff --git a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java index 5d42e9243..a4ac23b43 100644 --- a/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java +++ b/apps/i2psnark/java/src/org/klomp/snark/web/I2PSnarkServlet.java @@ -592,7 +592,7 @@ public class I2PSnarkServlet extends HttpServlet { client = "Robert"; else client = "Unknown (" + ch + ')'; - out.write("" + client + "  " + peer.toString().substring(5, 9) + ""); + out.write(client + "  " + peer.toString().substring(5, 9)); if (showDebug) out.write(" inactive " + (peer.getInactiveTime() / 1000) + "s"); out.write("\n\t"); @@ -606,7 +606,7 @@ public class I2PSnarkServlet extends HttpServlet { String ps = String.valueOf(pct); if (ps.length() > 5) ps = ps.substring(0, 5); - out.write("" + ps + "%"); + out.write(ps + "%"); } out.write("\n\t"); out.write(""); @@ -615,7 +615,7 @@ public class I2PSnarkServlet extends HttpServlet { if (remaining > 0) { if (peer.isInteresting() && !peer.isChoked()) { out.write(""); - out.write("" + formatSize(peer.getDownloadRate()) + "ps"); + out.write(formatSize(peer.getDownloadRate()) + "ps"); } else { out.write(""); - out.write("" + formatSize(peer.getUploadRate()) + "ps"); + out.write(formatSize(peer.getUploadRate()) + "ps"); } else { out.write("Refresh the page to actuate phase change."); + addFormNotice("Theme change saved. Refresh the page to view."); else addFormNotice("Error saving the configuration (applied but not saved) - please see the error logs."); } diff --git a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java index 938fb33d7..369d24770 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/SummaryHelper.java @@ -382,13 +382,13 @@ public class SummaryHelper extends HelperBase { // red or yellow light buf.append("\"Rebuilding…\"\n"); - } else { + } else { // green light buf.append("\"Ready\"\n"); } } else { // yellow light - buf.append("\"Building…\"\n"); + buf.append("\"Building…\"\n"); } } buf.append("
\n"); diff --git a/core/c/jbigi/build.sh b/core/c/jbigi/build.sh index af6dbaa90..13678a6d5 100755 --- a/core/c/jbigi/build.sh +++ b/core/c/jbigi/build.sh @@ -54,7 +54,7 @@ cp *jbigi???* ../../lib/ echo 'Library copied to lib/' cd ../.. -I2P=~/i2p/i2p +I2P=~/i2p if [ ! -f $I2P/lib/i2p.jar ] then echo "I2P installation not found in $I2P - correct \$I2P definition in script to run speed test" diff --git a/core/java/src/net/i2p/stat/Rate.java b/core/java/src/net/i2p/stat/Rate.java index 6983c6b6c..764691d6d 100644 --- a/core/java/src/net/i2p/stat/Rate.java +++ b/core/java/src/net/i2p/stat/Rate.java @@ -452,8 +452,14 @@ public class Rate { && _lifetimeTotalEventTime == r.getLifetimeTotalEventTime(); } + /** + * It doesn't appear that Rates are ever stored in a Set or Map + * (RateStat stores in an array) so let's make this easy. + * We can always make something faster if it's actually used. + */ @Override public int hashCode() { +/***** int hash = 5; hash = 67 * hash + (int)(Double.doubleToLongBits(this._currentTotalValue) ^ (Double.doubleToLongBits(this._currentTotalValue) >>> 32)); hash = 67 * hash + (int)(this._currentEventCount ^ (this._currentEventCount >>> 32)); @@ -470,6 +476,8 @@ public class Rate { hash = 67 * hash + (int)(this._creationDate ^ (this._creationDate >>> 32)); hash = 67 * hash + (int)(this._period ^ (this._period >>> 32)); return hash; +******/ + return toString().hashCode(); } @Override diff --git a/history.txt b/history.txt index ceee3bc43..ba49a9f94 100644 --- a/history.txt +++ b/history.txt @@ -1,3 +1,8 @@ +* 2009-10-12 0.7.7 released + +2009-10-11 zzz + * Misc. cleanups after review, prep for release + 2009-10-09 zzz * ElGamalEngine: Fix rare AIOOBE (thanks hottuna!) * I2PTunnel: Fix persistent client tunnel keyfile location diff --git a/initialNews.xml b/initialNews.xml index 1572c2ad4..40892c28d 100644 --- a/initialNews.xml +++ b/initialNews.xml @@ -1,5 +1,5 @@ - - + +

Congratulations on getting I2P installed!

  • diff --git a/installer/install.xml b/installer/install.xml index 1988e5e2a..7c7091450 100644 --- a/installer/install.xml +++ b/installer/install.xml @@ -4,7 +4,7 @@ i2p - 0.7.6 + 0.7.7 diff --git a/news.xml b/news.xml index be13ee443..24fe7efbb 100644 --- a/news.xml +++ b/news.xml @@ -1,5 +1,5 @@ - - +

    -

    +

    -I2P version 0.7.6 contains additional fixes for network stability issues -related to tunnel building and connection limits. -While the 0.7.5 release greatly improved the congestion that -appeared UTC evenings and weekends, it was not eliminated; -this release should improve the situation further. +I2P version 0.7.7 contains several anonymity improvements. +The use of session keys for crypto was completely reworked, +and I2PSnark now uses its own tunnels for tracker communication. +Work continues on improving the router console, +including conformance to HTML standards and better support of UTF-8.

    -This version also has new console themes by dr|z3d, -which may be selected on the new UI configuration page. -Sorry, the new themes are not available for IE browsers. +Work also continues on increasing speeds, both by reducing the +number of session keys transferred, by improving the +methods of dropping messages during overload, and by reducing +drops by high-bandwidth routers. +There is a new unsigned update option +for those of you that would like automatic udpates to bleeding-edge development versions.

    -The default tunnel length variance is changed from 1 to 0. -This mainly affects exploratory tunnels and iMule. -As explained on zzz.i2p, -a non-zero variance adds very little protection, at great cost -in resources. -Should you wish to reconfigure your exploratory settings back to the old variance of 1, -or change to length 3 variance 0, -you may do so on the config tunnels page. -iMule settings are best changed within that application. -

    -I2P now stores temporary data in the system temp directory -(generally /var/tmp on Linux and %TEMP% on Windows). -For new installs only, -user data is in $HOME/.i2p on Linux/Mac and -%APPDATA%\I2P on Windows. -

    -The release contains several changes to reduce resource usage -(memory, CPU, and connections) and the usual assortment of bug fixes. +The release also contains several changes to reduce memory and CPU usage, +and a large assortment of bug fixes. Upgrading is recommended. -

    -This is the first release built and signed by zzz. -Thanks again to Complication for his many contributions to the project -over the past five years. -I2P is undergoing the most rapid development in years. Please give the +Please give the developers feedback on IRC #i2p or forum.i2p and get involved!

    diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java index 9a7f805ca..8aa072fcf 100644 --- a/router/java/src/net/i2p/router/RouterVersion.java +++ b/router/java/src/net/i2p/router/RouterVersion.java @@ -18,9 +18,9 @@ public class RouterVersion { /** deprecated */ public final static String ID = "Monotone"; public final static String VERSION = CoreVersion.VERSION; - public final static long BUILD = 26; + public final static long BUILD = 0; /** for example "-test" */ - public final static String EXTRA = "-rc"; + public final static String EXTRA = ""; public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA; public static void main(String args[]) { System.out.println("I2P Router version: " + FULL_VERSION); diff --git a/router/java/src/net/i2p/router/transport/udp/PeerTestManager.java b/router/java/src/net/i2p/router/transport/udp/PeerTestManager.java index fd2d6021a..0a61335a9 100644 --- a/router/java/src/net/i2p/router/transport/udp/PeerTestManager.java +++ b/router/java/src/net/i2p/router/transport/udp/PeerTestManager.java @@ -177,7 +177,8 @@ class PeerTestManager { testComplete(false); } catch (UnknownHostException uhe) { if (_log.shouldLog(Log.ERROR)) - _log.error("Unable to get our IP from bob's reply: " + from + ", " + testInfo, uhe); + _log.error("Unable to get our IP (length " + ip.length + + ") from bob's reply: " + from + ", " + testInfo, uhe); } } else { PeerState charlieSession = _transport.getPeerState(from); diff --git a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java index d431913d1..06b429889 100644 --- a/router/java/src/net/i2p/router/transport/udp/UDPTransport.java +++ b/router/java/src/net/i2p/router/transport/udp/UDPTransport.java @@ -40,7 +40,6 @@ import net.i2p.util.SimpleTimer; * */ public class UDPTransport extends TransportImpl implements TimedWeightedPriorityMessageQueue.FailedListener { - private RouterContext _rContext; private Log _log; private UDPEndpoint _endpoint; /** Peer (Hash) to PeerState */ diff --git a/router/java/src/net/i2p/router/tunnel/TunnelGatewayZeroHop.java b/router/java/src/net/i2p/router/tunnel/TunnelGatewayZeroHop.java index 40e4d456e..4289f146f 100644 --- a/router/java/src/net/i2p/router/tunnel/TunnelGatewayZeroHop.java +++ b/router/java/src/net/i2p/router/tunnel/TunnelGatewayZeroHop.java @@ -12,8 +12,6 @@ import net.i2p.util.Log; * */ public class TunnelGatewayZeroHop extends TunnelGateway { - private RouterContext TunnelContext; - private Log TunnelLog; private TunnelCreatorConfig _config; private OutboundMessageDistributor _outDistributor; private InboundMessageDistributor _inDistributor; @@ -23,11 +21,9 @@ public class TunnelGatewayZeroHop extends TunnelGateway { */ public TunnelGatewayZeroHop(RouterContext context, TunnelCreatorConfig config) { super(context, null, null, null); - TunnelContext = context; - TunnelLog = context.logManager().getLog(TunnelGatewayZeroHop.class); _config = config; if (config.isInbound()) - _inDistributor = new InboundMessageDistributor(TunnelContext, config.getDestination()); + _inDistributor = new InboundMessageDistributor(context, config.getDestination()); else _outDistributor = new OutboundMessageDistributor(context, 400); } @@ -53,8 +49,8 @@ public class TunnelGatewayZeroHop extends TunnelGateway { */ @Override public void add(I2NPMessage msg, Hash toRouter, TunnelId toTunnel) { - if (TunnelLog.shouldLog(Log.DEBUG)) - TunnelLog.debug("zero hop gateway: distribute " + (_config.isInbound() ? "inbound " : " outbound ") + if (_log.shouldLog(Log.DEBUG)) + _log.debug("zero hop gateway: distribute " + (_config.isInbound() ? "inbound " : " outbound ") + " to " + (toRouter != null ? toRouter.toBase64().substring(0,4) : "" ) + "." + (toTunnel != null ? toTunnel.getTunnelId() + "" : "") + ": " + msg);