Cleanups after review and prep for release
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
@ -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("</td>\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("</td>\n\t");
|
||||
out.write("<td class=\"snarkTorrentStatus " + rowClass + "\">");
|
||||
@ -615,7 +615,7 @@ public class I2PSnarkServlet extends HttpServlet {
|
||||
if (remaining > 0) {
|
||||
if (peer.isInteresting() && !peer.isChoked()) {
|
||||
out.write("<font color=#008000>");
|
||||
out.write("" + formatSize(peer.getDownloadRate()) + "ps</font>");
|
||||
out.write(formatSize(peer.getDownloadRate()) + "ps</font>");
|
||||
} else {
|
||||
out.write("<font color=#a00000><a title=\"");
|
||||
if (!peer.isInteresting())
|
||||
@ -630,7 +630,7 @@ public class I2PSnarkServlet extends HttpServlet {
|
||||
if (pct != 100.0) {
|
||||
if (peer.isInterested() && !peer.isChoking()) {
|
||||
out.write("<font color=#008000>");
|
||||
out.write("" + formatSize(peer.getUploadRate()) + "ps</font>");
|
||||
out.write(formatSize(peer.getUploadRate()) + "ps</font>");
|
||||
} else {
|
||||
out.write("<font color=#a00000><a title=\"");
|
||||
if (!peer.isInterested())
|
||||
|
@ -25,7 +25,7 @@ public class ConfigUIHandler extends FormHandler {
|
||||
else
|
||||
_context.router().setConfigSetting(CSSHelper.PROP_THEME_NAME, _config);
|
||||
if (_context.router().saveConfig())
|
||||
addFormNotice("Theme change saved. <a href=\"configui.jsp\">Refresh the page</a> to actuate phase change.");
|
||||
addFormNotice("Theme change saved. <a href=\"configui.jsp\">Refresh the page</a> to view.");
|
||||
else
|
||||
addFormNotice("Error saving the configuration (applied but not saved) - please see the error logs.");
|
||||
}
|
||||
|
@ -382,13 +382,13 @@ public class SummaryHelper extends HelperBase {
|
||||
// red or yellow light
|
||||
buf.append("<td><img src=\"/themes/console/images/local_inprogress.png\" alt=\"Rebuilding…\" title=\"Leases expired ").append(DataHelper.formatDuration(0-timeToExpire));
|
||||
buf.append(" ago. Rebuilding…\"></td></tr>\n");
|
||||
} else {
|
||||
} else {
|
||||
// green light
|
||||
buf.append("<td><img src=\"/themes/console/images/local_up.png\" alt=\"Ready\" title=\"Ready\"></td></tr>\n");
|
||||
}
|
||||
} else {
|
||||
// yellow light
|
||||
buf.append("<td><img src=\"/themes/console/images/local_inprogress.png\" alt=\"Building…\" title=\"Tunnel building in progress…\"></td></tr>\n");
|
||||
buf.append("<td><img src=\"/themes/console/images/local_inprogress.png\" alt=\"Building…\" title=\"Tunnel building in progress…\"></td></tr>\n");
|
||||
}
|
||||
}
|
||||
buf.append("</table><hr>\n");
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -1,5 +1,5 @@
|
||||
<i2p.news date="$Date: 2009-07-31 00:00:00 $">
|
||||
<i2p.release version="0.7.6" date="2009/07/31" minVersion="0.6"/>
|
||||
<i2p.news date="$Date: 2009-10-12 00:00:00 $">
|
||||
<i2p.release version="0.7.7" date="2009/10/12" minVersion="0.6"/>
|
||||
<h4>Congratulations on getting I2P installed!</h4>
|
||||
<ul>
|
||||
<li>
|
||||
|
@ -4,7 +4,7 @@
|
||||
|
||||
<info>
|
||||
<appname>i2p</appname>
|
||||
<appversion>0.7.6</appversion>
|
||||
<appversion>0.7.7</appversion>
|
||||
<authors>
|
||||
<author name="I2P" email="http://forum.i2p2.de/"/>
|
||||
</authors>
|
||||
|
51
news.xml
51
news.xml
@ -1,5 +1,5 @@
|
||||
<i2p.news date="$Date: 2009-07-31 00:00:00 $">
|
||||
<i2p.release version="0.7.6" date="2009/07/31" minVersion="0.6"
|
||||
<i2p.news date="$Date: 2009-10-12 00:00:00 $">
|
||||
<i2p.release version="0.7.7" date="2009/10/12" minVersion="0.6"
|
||||
anonurl="http://i2p/NF2RLVUxVulR3IqK0sGJR0dHQcGXAzwa6rEO4WAWYXOHw-DoZhKnlbf1nzHXwMEJoex5nFTyiNMqxJMWlY54cvU~UenZdkyQQeUSBZXyuSweflUXFqKN-y8xIoK2w9Ylq1k8IcrAFDsITyOzjUKoOPfVq34rKNDo7fYyis4kT5bAHy~2N1EVMs34pi2RFabATIOBk38Qhab57Umpa6yEoE~rbyR~suDRvD7gjBvBiIKFqhFueXsR2uSrPB-yzwAGofTXuklofK3DdKspciclTVzqbDjsk5UXfu2nTrC1agkhLyqlOfjhyqC~t1IXm-Vs2o7911k7KKLGjB4lmH508YJ7G9fLAUyjuB-wwwhejoWqvg7oWvqo4oIok8LG6ECR71C3dzCvIjY2QcrhoaazA9G4zcGMm6NKND-H4XY6tUWhpB~5GefB3YczOqMbHq4wi0O9MzBFrOJEOs3X4hwboKWANf7DT5PZKJZ5KorQPsYRSq0E3wSOsFCSsdVCKUGsAAAA/i2p/i2pupdate.sud"
|
||||
publicurl="http://dev.i2p.net/i2p/i2pupdate.sud"
|
||||
anonannouncement="http://i2p/NF2RLVUxVulR3IqK0sGJR0dHQcGXAzwa6rEO4WAWYXOHw-DoZhKnlbf1nzHXwMEJoex5nFTyiNMqxJMWlY54cvU~UenZdkyQQeUSBZXyuSweflUXFqKN-y8xIoK2w9Ylq1k8IcrAFDsITyOzjUKoOPfVq34rKNDo7fYyis4kT5bAHy~2N1EVMs34pi2RFabATIOBk38Qhab57Umpa6yEoE~rbyR~suDRvD7gjBvBiIKFqhFueXsR2uSrPB-yzwAGofTXuklofK3DdKspciclTVzqbDjsk5UXfu2nTrC1agkhLyqlOfjhyqC~t1IXm-Vs2o7911k7KKLGjB4lmH508YJ7G9fLAUyjuB-wwwhejoWqvg7oWvqo4oIok8LG6ECR71C3dzCvIjY2QcrhoaazA9G4zcGMm6NKND-H4XY6tUWhpB~5GefB3YczOqMbHq4wi0O9MzBFrOJEOs3X4hwboKWANf7DT5PZKJZ5KorQPsYRSq0E3wSOsFCSsdVCKUGsAAAA/pipermail/i2p/2005-September/000878.html"
|
||||
@ -10,42 +10,25 @@
|
||||
anonlogs="http://i2p/Nf3ab-ZFkmI-LyMt7GjgT-jfvZ3zKDl0L96pmGQXF1B82W2Bfjf0n7~288vafocjFLnQnVcmZd~-p0-Oolfo9aW2Rm-AhyqxnxyLlPBqGxsJBXjPhm1JBT4Ia8FB-VXt0BuY0fMKdAfWwN61-tj4zIcQWRxv3DFquwEf035K~Ra4SWOqiuJgTRJu7~o~DzHVljVgWIzwf8Z84cz0X33pv-mdG~~y0Bsc2qJVnYwjjR178YMcRSmNE0FVMcs6f17c6zqhMw-11qjKpY~EJfHYCx4lBWF37CD0obbWqTNUIbL~78vxqZRT3dgAgnLixog9nqTO-0Rh~NpVUZnoUi7fNR~awW5U3Cf7rU7nNEKKobLue78hjvRcWn7upHUF45QqTDuaM3yZa7OsjbcH-I909DOub2Q0Dno6vIwuA7yrysccN1sbnkwZbKlf4T6~iDdhaSLJd97QCyPOlbyUfYy9QLNExlRqKgNVJcMJRrIual~Lb1CLbnzt0uvobM57UpqSAAAA/meeting141"
|
||||
publiclogs="http://www.i2p.net/meeting141" />
|
||||
<p>
|
||||
<h4><ul><li>2009-07-31: <b>0.7.6 <a href="http://www.i2p2.i2p/release-0.7.6.html">Released</a></b></li></ul></h4>
|
||||
<h4><ul><li>2009-10-12: <b>0.7.7 <a href="http://www.i2p2.i2p/release-0.7.7.html">Released</a></b></li></ul></h4>
|
||||
</p><p>
|
||||
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.
|
||||
</p><p>
|
||||
This version also has new console themes by dr|z3d,
|
||||
which may be selected on <a href="/configui.jsp">the new UI configuration page</a>.
|
||||
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 <a href="/configupdate.jsp">unsigned update option</a>
|
||||
for those of you that would like automatic udpates to bleeding-edge development versions.
|
||||
</p><p>
|
||||
The default tunnel length variance is changed from 1 to 0.
|
||||
This mainly affects exploratory tunnels and iMule.
|
||||
<a href="http://zzz.i2p/topics/260">As explained on zzz.i2p</a>,
|
||||
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 <a href="configtunnels.jsp">the config tunnels page</a>.
|
||||
iMule settings are best changed within that application.
|
||||
</p><p>
|
||||
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.
|
||||
</p><p>
|
||||
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.
|
||||
</p><p>
|
||||
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 <a href="http://forum.i2p">forum.i2p</a>
|
||||
and <a href="http://www.i2p2.i2p/getinvolved.html">get involved</a>!
|
||||
</p>
|
||||
|
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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 */
|
||||
|
@ -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);
|
||||
|
Reference in New Issue
Block a user