forked from I2P_Developers/i2p.i2p
Compare commits
3 Commits
i2p_0_6_1_
...
i2p_0_6_1_
Author | SHA1 | Date | |
---|---|---|---|
![]() |
034803add7 | ||
![]() |
b25bb053bb | ||
![]() |
9bd0c79441 |
@@ -14,8 +14,8 @@ package net.i2p;
|
||||
*
|
||||
*/
|
||||
public class CoreVersion {
|
||||
public final static String ID = "$Revision: 1.65 $ $Date: 2006-07-18 15:08:01 $";
|
||||
public final static String VERSION = "0.6.1.23";
|
||||
public final static String ID = "$Revision: 1.66 $ $Date: 2006-07-27 22:35:02 $";
|
||||
public final static String VERSION = "0.6.1.24";
|
||||
|
||||
public static void main(String args[]) {
|
||||
System.out.println("I2P Core version: " + VERSION);
|
||||
|
13
history.txt
13
history.txt
@@ -1,4 +1,15 @@
|
||||
$Id: history.txt,v 1.499 2006-07-27 18:40:02 jrandom Exp $
|
||||
$Id: history.txt,v 1.502 2006-07-28 23:43:04 jrandom Exp $
|
||||
|
||||
* 2006-07-28 0.6.1.24 released
|
||||
|
||||
2006-07-28 jrandom
|
||||
* Don't try to reverify too many netDb entries at once (thanks
|
||||
cervantes and Complication!)
|
||||
|
||||
2006-07-28 jrandom
|
||||
* Actually fix the threading deadlock issue in the netDb (removing
|
||||
the synchronized access to individual kbuckets while validating
|
||||
individual entries) (thanks cervantes, postman, frosk, et al!)
|
||||
|
||||
* 2006-07-27 0.6.1.23 released
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<i2p.news date="$Date: 2006-06-13 21:17:40 $">
|
||||
<i2p.release version="0.6.1.22" date="2006/06/13" minVersion="0.6"
|
||||
<i2p.news date="$Date: 2006-07-18 15:08:00 $">
|
||||
<i2p.release version="0.6.1.24" date="2006/07/29" 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"
|
||||
|
@@ -4,7 +4,7 @@
|
||||
|
||||
<info>
|
||||
<appname>i2p</appname>
|
||||
<appversion>0.6.1.23</appversion>
|
||||
<appversion>0.6.1.24</appversion>
|
||||
<authors>
|
||||
<author name="I2P" email="support@i2p.net"/>
|
||||
</authors>
|
||||
|
4
news.xml
4
news.xml
@@ -1,5 +1,5 @@
|
||||
<i2p.news date="$Date: 2006-07-18 15:08:00 $">
|
||||
<i2p.release version="0.6.1.23" date="2006/07/27" minVersion="0.6"
|
||||
<i2p.news date="$Date: 2006-07-27 22:34:59 $">
|
||||
<i2p.release version="0.6.1.24" date="2006/07/29" 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"
|
||||
|
@@ -15,8 +15,8 @@ import net.i2p.CoreVersion;
|
||||
*
|
||||
*/
|
||||
public class RouterVersion {
|
||||
public final static String ID = "$Revision: 1.438 $ $Date: 2006-07-27 18:40:03 $";
|
||||
public final static String VERSION = "0.6.1.23";
|
||||
public final static String ID = "$Revision: 1.441 $ $Date: 2006-07-28 23:41:16 $";
|
||||
public final static String VERSION = "0.6.1.24";
|
||||
public final static long BUILD = 0;
|
||||
public static void main(String args[]) {
|
||||
System.out.println("I2P Router version: " + VERSION + "-" + BUILD);
|
||||
|
@@ -233,6 +233,12 @@ public class FloodfillNetworkDatabaseFacade extends KademliaNetworkDatabaseFacad
|
||||
}
|
||||
|
||||
protected void lookupBeforeDropping(Hash peer, RouterInfo info) {
|
||||
if (_context.jobQueue().getMaxLag() > 500) {
|
||||
// don't try to overload ourselves (e.g. failing 3000 router refs at
|
||||
// once, and then firing off 3000 netDb lookup tasks)
|
||||
super.lookupBeforeDropping(peer, info);
|
||||
return;
|
||||
}
|
||||
// this sends out the search to the floodfill peers even if we already have the
|
||||
// entry locally, firing no job if it gets a reply with an updated value (meaning
|
||||
// we shouldn't drop them but instead use the new data), or if they all time out,
|
||||
|
@@ -28,6 +28,7 @@ class KBucketSet {
|
||||
private I2PAppContext _context;
|
||||
private Hash _us;
|
||||
private KBucket _buckets[];
|
||||
private volatile int _size;
|
||||
|
||||
public final static int BASE = 8; // must go into KEYSIZE_BITS evenly
|
||||
public final static int KEYSIZE_BITS = Hash.HASH_LENGTH * 8;
|
||||
@@ -51,6 +52,8 @@ class KBucketSet {
|
||||
if (bucket >= 0) {
|
||||
int oldSize = _buckets[bucket].getKeyCount();
|
||||
int numInBucket = _buckets[bucket].add(peer);
|
||||
if (numInBucket != oldSize)
|
||||
_size++;
|
||||
if (numInBucket > BUCKET_SIZE) {
|
||||
// perhaps queue up coalesce job? naaahh.. lets let 'er grow for now
|
||||
}
|
||||
@@ -62,17 +65,26 @@ class KBucketSet {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Not an exact count (due to concurrency issues) but generally correct
|
||||
*
|
||||
*/
|
||||
public int size() {
|
||||
return _size;
|
||||
/*
|
||||
int size = 0;
|
||||
for (int i = 0; i < _buckets.length; i++)
|
||||
size += _buckets[i].getKeyCount();
|
||||
return size;
|
||||
*/
|
||||
}
|
||||
|
||||
public boolean remove(Hash entry) {
|
||||
int bucket = pickBucket(entry);
|
||||
KBucket kbucket = getBucket(bucket);
|
||||
boolean removed = kbucket.remove(entry);
|
||||
if (removed)
|
||||
_size--;
|
||||
return removed;
|
||||
}
|
||||
|
||||
|
@@ -363,16 +363,16 @@ class PersistentDataStore extends TransientDataStore {
|
||||
}
|
||||
}
|
||||
} catch (DataFormatException dfe) {
|
||||
if (_log.shouldLog(Log.ERROR))
|
||||
_log.error("Error reading the routerInfo from " + _routerFile.getName(), dfe);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Error reading the routerInfo from " + _routerFile.getName(), dfe);
|
||||
corrupt = true;
|
||||
} finally {
|
||||
if (fis != null) try { fis.close(); } catch (IOException ioe) {}
|
||||
}
|
||||
if (corrupt) _routerFile.delete();
|
||||
} catch (IOException ioe) {
|
||||
if (_log.shouldLog(Log.ERROR))
|
||||
_log.error("Unable to read the router reference in " + _routerFile.getName(), ioe);
|
||||
if (_log.shouldLog(Log.INFO))
|
||||
_log.info("Unable to read the router reference in " + _routerFile.getName(), ioe);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -317,8 +317,8 @@ public class NTCPTransport extends TransportImpl {
|
||||
removed = (NTCPConnection)_conByIdent.remove(ident.calculateHash());
|
||||
}
|
||||
if ( (removed != null) && (removed != con) ) {// multiple cons, close 'em both
|
||||
if (_log.shouldLog(Log.ERROR))
|
||||
_log.error("Multiple connections on remove, closing " + removed + " (already closed " + con + ")");
|
||||
if (_log.shouldLog(Log.WARN))
|
||||
_log.warn("Multiple connections on remove, closing " + removed + " (already closed " + con + ")");
|
||||
_context.statManager().addRateData("ntcp.multipleCloseOnRemove", removed.getUptime(), 0);
|
||||
removed.close();
|
||||
}
|
||||
|
Reference in New Issue
Block a user