0.7.9, and:
* I2CP: Clean up resources on 5-minute leaseset timeout at startup * Increase max floodfills to 9 (was 6) * Temporarily disable routerInfo floodfill verifies * Fix .fr eepsite index css * Javdoc tweaks
This commit is contained in:
@ -561,7 +561,7 @@ public class SnarkManager implements Snark.CompleteListener {
|
|||||||
if ( (files != null) && (files.size() > MAX_FILES_PER_TORRENT) ) {
|
if ( (files != null) && (files.size() > MAX_FILES_PER_TORRENT) ) {
|
||||||
return _("Too many files in \"{0}\" ({1}), deleting it!", info.getName(), files.size());
|
return _("Too many files in \"{0}\" ({1}), deleting it!", info.getName(), files.size());
|
||||||
} else if ( (files == null) && (info.getName().endsWith(".torrent")) ) {
|
} else if ( (files == null) && (info.getName().endsWith(".torrent")) ) {
|
||||||
return _("Torrent file \"{0}\" cannot end in '.torrent', deleting it!", info.getName());
|
return _("Torrent file \"{0}\" cannot end in \".torrent\", deleting it!", info.getName());
|
||||||
} else if (info.getPieces() <= 0) {
|
} else if (info.getPieces() <= 0) {
|
||||||
return _("No pieces in \"{0}\", deleting it!", info.getName());
|
return _("No pieces in \"{0}\", deleting it!", info.getName());
|
||||||
} else if (info.getPieces() > Storage.MAX_PIECES) {
|
} else if (info.getPieces() > Storage.MAX_PIECES) {
|
||||||
|
@ -16,7 +16,7 @@ package net.i2p;
|
|||||||
public class CoreVersion {
|
public class CoreVersion {
|
||||||
/** deprecated */
|
/** deprecated */
|
||||||
public final static String ID = "Monotone";
|
public final static String ID = "Monotone";
|
||||||
public final static String VERSION = "0.7.8";
|
public final static String VERSION = "0.7.9";
|
||||||
|
|
||||||
public static void main(String args[]) {
|
public static void main(String args[]) {
|
||||||
System.out.println("I2P Core version: " + VERSION);
|
System.out.println("I2P Core version: " + VERSION);
|
||||||
|
@ -289,8 +289,10 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
|
|||||||
if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix() + "After getDate / begin waiting for a response");
|
if (_log.shouldLog(Log.DEBUG)) _log.debug(getPrefix() + "After getDate / begin waiting for a response");
|
||||||
int waitcount = 0;
|
int waitcount = 0;
|
||||||
while (!_dateReceived) {
|
while (!_dateReceived) {
|
||||||
if (waitcount++ > 30)
|
if (waitcount++ > 30) {
|
||||||
|
closeSocket();
|
||||||
throw new IOException("no date handshake");
|
throw new IOException("no date handshake");
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
synchronized (_dateReceivedLock) {
|
synchronized (_dateReceivedLock) {
|
||||||
_dateReceivedLock.wait(1000);
|
_dateReceivedLock.wait(1000);
|
||||||
@ -307,8 +309,13 @@ abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2CPMessa
|
|||||||
// wait until we have created a lease set
|
// wait until we have created a lease set
|
||||||
waitcount = 0;
|
waitcount = 0;
|
||||||
while (_leaseSet == null) {
|
while (_leaseSet == null) {
|
||||||
if (waitcount++ > 5*60)
|
if (waitcount++ > 5*60) {
|
||||||
|
try {
|
||||||
|
_producer.disconnect(this);
|
||||||
|
} catch (I2PSessionException ipe) {}
|
||||||
|
closeSocket();
|
||||||
throw new IOException("no leaseset");
|
throw new IOException("no leaseset");
|
||||||
|
}
|
||||||
synchronized (_leaseSetWait) {
|
synchronized (_leaseSetWait) {
|
||||||
try {
|
try {
|
||||||
_leaseSetWait.wait(1000);
|
_leaseSetWait.wait(1000);
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
* 2010-01-12 0.7.9 released
|
||||||
|
|
||||||
|
2010-01-12 zzz
|
||||||
|
* I2CP: Clean up resources on 5-minute leaseset timeout at startup
|
||||||
|
* Increase max floodfills to 9 (was 6)
|
||||||
|
* Temporarily disable routerInfo floodfill verifies
|
||||||
|
* Fix .fr eepsite index css
|
||||||
|
* Javdoc tweaks
|
||||||
|
|
||||||
2010-01-09 zzz
|
2010-01-09 zzz
|
||||||
* Include new eepsite indexes in pkg
|
* Include new eepsite indexes in pkg
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
<info>
|
<info>
|
||||||
<appname>i2p</appname>
|
<appname>i2p</appname>
|
||||||
<appversion>0.7.8</appversion>
|
<appversion>0.7.9</appversion>
|
||||||
<authors>
|
<authors>
|
||||||
<author name="I2P" email="http://forum.i2p2.de/"/>
|
<author name="I2P" email="http://forum.i2p2.de/"/>
|
||||||
</authors>
|
</authors>
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
<title>I2P serveur web anonyme | Bienvenue à votre eepsite</title>
|
<title>I2P serveur web anonyme | Bienvenue à votre eepsite</title>
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
||||||
<link rel="shortcut icon" href="favicon.ico" />
|
<link rel="shortcut icon" href="favicon.ico" />
|
||||||
<link rel="stylesheet" type="text/css" href="lib/eepsite.css" />
|
<link rel="stylesheet" type="text/css" href="eepsite.css" />
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="fairylights">
|
<div class="fairylights">
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<i2p.news date="$Date: 2009-12-08 00:00:00 $">
|
<i2p.news date="$Date: 2010-01-12 00:00:00 $">
|
||||||
<i2p.release version="0.7.8" date="2009/12/08" minVersion="0.6"/>
|
<i2p.release version="0.7.9" date="2010/01/12" minVersion="0.6"/>
|
||||||
<h4><ul><li>Congratulations on getting I2P installed!</li></ul></h4>
|
<h4><ul><li>Congratulations on getting I2P installed!</li></ul></h4>
|
||||||
<p>
|
<p>
|
||||||
<b>Welcome to I2P!</b>
|
<b>Welcome to I2P!</b>
|
||||||
|
@ -1,26 +1,25 @@
|
|||||||
<i2p.news date="$Date: 2009-12-08 00:00:00 $">
|
<i2p.news date="$Date: 2010-01-12 00:00:00 $">
|
||||||
<i2p.release version="0.7.8" date="2009/12/08" minVersion="0.6" />
|
<i2p.release version="0.7.9" date="2010/01/12" minVersion="0.6" />
|
||||||
<h4><ul><li>2009-12-08: <b>0.7.8 <a href="http://www.i2p2.i2p/release-0.7.8.html">Released</a></b></li></ul></h4>
|
<h4><ul><li>2010-01-12: <b>0.7.9 <a href="http://www.i2p2.i2p/release-0.7.9.html">Released</a></b></li></ul></h4>
|
||||||
<p>
|
<p>
|
||||||
The 9th I2P release for 2009,
|
0.7.9 fixes several longstanding bugs causing message corruption.
|
||||||
0.7.8, contains initial support for router console translations, and
|
We are hopeful that network performance will improve once it is widely deployed.
|
||||||
changes to the floodfill system which lay the foundation for supporting large growth in the network.
|
There are other changes that should help router reachability and tunnel build success rates.
|
||||||
|
The release also includes additional translation support, and a full Russian translation by "forget"
|
||||||
|
which was sponsored by "russiansponsor".
|
||||||
</p><p>
|
</p><p>
|
||||||
To prevent easy blocking of I2P by malicious firewalls, the release randomizes the I2P port for new installs.
|
There are more changes to reduce memory and CPU usage,
|
||||||
For existing installs, please help those who are vulnerable to blocking by changing UDP to a random port on
|
and other bug fixes.
|
||||||
|
Upgrading is recommended.
|
||||||
|
As a reminder to those still using port 8887,
|
||||||
|
please help those who are vulnerable to blocking by changing UDP to a random port on
|
||||||
<a href="config.jsp">the network configuration page</a>
|
<a href="config.jsp">the network configuration page</a>
|
||||||
and adjusting your firewall if necessary.
|
and adjusting your firewall if necessary.
|
||||||
Say goodbye to port 8887!
|
|
||||||
</p><p>
|
|
||||||
The release also contains more changes to reduce memory and CPU usage,
|
|
||||||
and a large assortment of bug fixes.
|
|
||||||
Upgrading is recommended.
|
|
||||||
We especially encourage those of you still running release 0.7.6 or earlier to upgrade as soon as possible.
|
|
||||||
Please give the
|
Please give the
|
||||||
developers feedback on IRC #i2p or <a href="http://forum.i2p">forum.i2p</a>
|
developers feedback on <a href="irc://127.0.0.1:6668/i2p">IRC #i2p</a> or <a href="http://forum.i2p">forum.i2p</a>
|
||||||
and <a href="http://www.i2p2.i2p/getinvolved.html">get involved</a>
|
and <a href="http://www.i2p2.i2p/getinvolved.html">get involved</a>
|
||||||
or <a href="http://www.i2p2.i2p/donate.html">donate</a>!
|
or <a href="http://www.i2p2.i2p/donate.html">donate</a>!
|
||||||
We are also looking for help on new and existing translations.
|
We are still looking for help on new and existing translations.
|
||||||
Please volunteer on IRC #i2p.
|
Please volunteer on IRC #i2p.
|
||||||
</p>
|
</p>
|
||||||
</i2p.news>
|
</i2p.news>
|
||||||
|
@ -18,9 +18,9 @@ public class RouterVersion {
|
|||||||
/** deprecated */
|
/** deprecated */
|
||||||
public final static String ID = "Monotone";
|
public final static String ID = "Monotone";
|
||||||
public final static String VERSION = CoreVersion.VERSION;
|
public final static String VERSION = CoreVersion.VERSION;
|
||||||
public final static long BUILD = 18;
|
public final static long BUILD = 0;
|
||||||
/** for example "-test" */
|
/** for example "-test" */
|
||||||
public final static String EXTRA = "-rc";
|
public final static String EXTRA = "";
|
||||||
public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;
|
public final static String FULL_VERSION = VERSION + "-" + BUILD + EXTRA;
|
||||||
public static void main(String args[]) {
|
public static void main(String args[]) {
|
||||||
System.out.println("I2P Router version: " + FULL_VERSION);
|
System.out.println("I2P Router version: " + FULL_VERSION);
|
||||||
|
@ -27,7 +27,7 @@ class FloodfillMonitorJob extends JobImpl {
|
|||||||
private static final long MIN_UPTIME = 2*60*60*1000;
|
private static final long MIN_UPTIME = 2*60*60*1000;
|
||||||
private static final long MIN_CHANGE_DELAY = 6*60*60*1000;
|
private static final long MIN_CHANGE_DELAY = 6*60*60*1000;
|
||||||
private static final int MIN_FF = 4;
|
private static final int MIN_FF = 4;
|
||||||
private static final int MAX_FF = 6;
|
private static final int MAX_FF = 9;
|
||||||
private static final String PROP_FLOODFILL_PARTICIPANT = "router.floodfillParticipant";
|
private static final String PROP_FLOODFILL_PARTICIPANT = "router.floodfillParticipant";
|
||||||
|
|
||||||
public FloodfillMonitorJob(RouterContext context, FloodfillNetworkDatabaseFacade facade) {
|
public FloodfillMonitorJob(RouterContext context, FloodfillNetworkDatabaseFacade facade) {
|
||||||
|
@ -53,6 +53,7 @@ class FloodfillStoreJob extends StoreJob {
|
|||||||
@Override
|
@Override
|
||||||
protected void succeed() {
|
protected void succeed() {
|
||||||
super.succeed();
|
super.succeed();
|
||||||
|
|
||||||
if (_state != null) {
|
if (_state != null) {
|
||||||
// Get the time stamp from the data we sent, so the Verify job can meke sure that
|
// Get the time stamp from the data we sent, so the Verify job can meke sure that
|
||||||
// it finds something stamped with that time or newer.
|
// it finds something stamped with that time or newer.
|
||||||
@ -61,6 +62,8 @@ class FloodfillStoreJob extends StoreJob {
|
|||||||
boolean isRouterInfo = data instanceof RouterInfo;
|
boolean isRouterInfo = data instanceof RouterInfo;
|
||||||
if (isRouterInfo) {
|
if (isRouterInfo) {
|
||||||
published = ((RouterInfo) data).getPublished();
|
published = ((RouterInfo) data).getPublished();
|
||||||
|
// Temporarily disable
|
||||||
|
return;
|
||||||
} else if (data instanceof LeaseSet) {
|
} else if (data instanceof LeaseSet) {
|
||||||
published = ((LeaseSet) data).getEarliestLeaseDate();
|
published = ((LeaseSet) data).getEarliestLeaseDate();
|
||||||
}
|
}
|
||||||
|
@ -231,7 +231,7 @@ class KBucketImpl implements KBucket {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Todo: shuffling here is a hack and doesn't work since
|
* Todo: shuffling here is a hack and doesn't work since
|
||||||
* wwe witched back to a HashSet implementation
|
* we switched back to a HashSet implementation
|
||||||
*/
|
*/
|
||||||
public int add(Hash peer) {
|
public int add(Hash peer) {
|
||||||
_entries.add(peer);
|
_entries.add(peer);
|
||||||
|
@ -77,7 +77,7 @@ public class CommSystemFacadeImpl extends CommSystemFacade {
|
|||||||
public boolean haveHighOutboundCapacity() { return (_manager == null ? false : _manager.haveHighOutboundCapacity()); }
|
public boolean haveHighOutboundCapacity() { return (_manager == null ? false : _manager.haveHighOutboundCapacity()); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Framed average clock skew of connected peers in seconds, or the clock offset if we cannot answer.
|
* @return Framed average clock skew of connected peers in seconds, or the clock offset if we cannot answer.
|
||||||
* Average is calculated over the middle "percentToInclude" peers.
|
* Average is calculated over the middle "percentToInclude" peers.
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
|
Reference in New Issue
Block a user