cCVS: ----------------------------------------------------------------------

This commit is contained in:
zzz
2006-09-07 23:03:18 +00:00
committed by zzz
parent 678f7d8f72
commit 61a6a29bec
5 changed files with 48 additions and 34 deletions

View File

@ -231,8 +231,8 @@ public class PeerCoordinator implements PeerListener
synchronized(peers) synchronized(peers)
{ {
Peer old = peerIDInList(peer.getPeerID(), peers); Peer old = peerIDInList(peer.getPeerID(), peers);
if ( (old != null) && (old.getInactiveTime() > 2*60*1000) ) { if ( (old != null) && (old.getInactiveTime() > 4*60*1000) ) {
// idle for 2 minutes, kill the old con // idle for 4 minutes, kill the old con (64KB/4min = 273B/sec minimum for one block)
if (_log.shouldLog(Log.WARN)) if (_log.shouldLog(Log.WARN))
_log.warn("Remomving old peer: " + peer + ": " + old + ", inactive for " + old.getInactiveTime()); _log.warn("Remomving old peer: " + peer + ": " + old + ", inactive for " + old.getInactiveTime());
peers.remove(old); peers.remove(old);
@ -448,13 +448,13 @@ public class PeerCoordinator implements PeerListener
} }
if (piece == null) { if (piece == null) {
if (_log.shouldLog(Log.WARN)) if (_log.shouldLog(Log.WARN))
_log.warn("nothing to even rerequest from " + peer + ": requested = " + requested _log.warn("nothing to even rerequest from " + peer + ": requested = " + requested);
+ " wanted = " + wantedPieces + " peerHas = " + havePieces); // _log.warn("nothing to even rerequest from " + peer + ": requested = " + requested
// + " wanted = " + wantedPieces + " peerHas = " + havePieces);
return -1; //If we still can't find a piece we want, so be it. return -1; //If we still can't find a piece we want, so be it.
} else { } else {
// Should be a lot smarter here - limit # of parallel attempts and // Should be a lot smarter here - limit # of parallel attempts and
// share data rather than starting from 0 with each peer. // share blocks rather than starting from 0 with each peer.
// And could share-as-we-go too.
// This is where the flaws of the snark data model are really exposed. // This is where the flaws of the snark data model are really exposed.
// Could also randomize within the duplicate set rather than strict rarest-first // Could also randomize within the duplicate set rather than strict rarest-first
if (_log.shouldLog(Log.DEBUG)) if (_log.shouldLog(Log.DEBUG))
@ -654,13 +654,15 @@ public class PeerCoordinator implements PeerListener
if (savedRequest == null || if (savedRequest == null ||
req.off > savedRequest.off || req.off > savedRequest.off ||
System.currentTimeMillis() > savedRequestTime + (15 * 60 * 1000)) { System.currentTimeMillis() > savedRequestTime + (15 * 60 * 1000)) {
if (savedRequest == null || (req.piece != savedRequest.piece && req.off != savedRequest.off)) {
if (_log.shouldLog(Log.DEBUG)) {
_log.debug(" Saving orphaned partial piece " + req);
if (savedRequest != null)
_log.debug(" (Discarding previously saved orphan) " + savedRequest);
}
}
savedRequest = req; savedRequest = req;
savedRequestTime = System.currentTimeMillis(); savedRequestTime = System.currentTimeMillis();
if (_log.shouldLog(Log.DEBUG))
_log.debug(" Saving orphaned partial piece " + req);
if (savedRequest != null)
if (_log.shouldLog(Log.DEBUG))
_log.debug(" (Discarding previously saved orphan) " + savedRequest);
} else { } else {
if (req.piece != savedRequest.piece) if (req.piece != savedRequest.piece)
if (_log.shouldLog(Log.DEBUG)) if (_log.shouldLog(Log.DEBUG))

View File

@ -556,7 +556,7 @@ class PeerState
} }
} }
synchronized void keepAlive() void keepAlive()
{ {
out.sendAlive(); out.sendAlive();
} }

View File

@ -321,8 +321,10 @@ public class I2PSnarkServlet extends HttpServlet {
else else
statusString = "Complete"; statusString = "Complete";
} else { } else {
if (isRunning) if (isRunning && curPeers > 0)
statusString = "OK (" + curPeers + "/" + knownPeers + " peers)"; statusString = "OK (" + curPeers + "/" + knownPeers + " peers)";
else if (isRunning)
statusString = "No Peers (0/" + knownPeers + ")";
else else
statusString = "Stopped"; statusString = "Stopped";
} }
@ -341,22 +343,23 @@ public class I2PSnarkServlet extends HttpServlet {
out.write("</a>"); out.write("</a>");
out.write("</td>\n\t"); out.write("</td>\n\t");
out.write("<td valign=\"top\" align=\"left\" class=\"snarkTorrentDownloaded " + rowClass + "\">"); out.write("<td valign=\"top\" align=\"right\" class=\"snarkTorrentETA " + rowClass + "\">");
if (remaining > 0) { if(isRunning && remainingSeconds > 0)
out.write(formatSize(total-remaining) + "/" + formatSize(total)); // 18MB/3GB out.write(DataHelper.formatDuration(remainingSeconds*1000)); // (eta 6h)
if(isRunning && remainingSeconds > 0)
out.write(" (ETA " + DataHelper.formatDuration(remainingSeconds*1000) + ")"); // (eta 6h)
} else {
out.write(formatSize(total)); // 3GB
}
out.write("</td>\n\t"); out.write("</td>\n\t");
out.write("<td valign=\"top\" align=\"left\" class=\"snarkTorrentUploaded " + rowClass out.write("<td valign=\"top\" align=\"right\" class=\"snarkTorrentDownloaded " + rowClass + "\">");
if (remaining > 0)
out.write(formatSize(total-remaining) + "/" + formatSize(total)); // 18MB/3GB
else
out.write(formatSize(total)); // 3GB
out.write("</td>\n\t");
out.write("<td valign=\"top\" align=\"right\" class=\"snarkTorrentUploaded " + rowClass
+ "\">" + formatSize(uploaded) + "</td>\n\t"); + "\">" + formatSize(uploaded) + "</td>\n\t");
out.write("<td valign=\"top\" align=\"left\" class=\"snarkTorrentRate\">"); out.write("<td valign=\"top\" align=\"right\" class=\"snarkTorrentRate\">");
if(isRunning && remaining > 0) if(isRunning && remaining > 0)
out.write(formatSize(downBps) + "ps"); out.write(formatSize(downBps) + "ps");
out.write("</td>\n\t"); out.write("</td>\n\t");
out.write("<td valign=\"top\" align=\"left\" class=\"snarkTorrentRate\">"); out.write("<td valign=\"top\" align=\"right\" class=\"snarkTorrentRate\">");
if(isRunning) if(isRunning)
out.write(formatSize(upBps) + "ps"); out.write(formatSize(upBps) + "ps");
out.write("</td>\n\t"); out.write("</td>\n\t");
@ -550,7 +553,10 @@ public class I2PSnarkServlet extends HttpServlet {
"}\n" + "}\n" +
"th {\n" + "th {\n" +
" background-color: #C7D5D5;\n" + " background-color: #C7D5D5;\n" +
" margin: 0px 0px 0px 0px;\n" + " padding: 0px 7px 0px 3px;\n" +
"}\n" +
"td {\n" +
" padding: 0px 7px 0px 3px;\n" +
"}\n" + "}\n" +
".snarkTorrentEven {\n" + ".snarkTorrentEven {\n" +
" background-color: #E7E7E7;\n" + " background-color: #E7E7E7;\n" +
@ -578,20 +584,21 @@ public class I2PSnarkServlet extends HttpServlet {
"<body>\n"; "<body>\n";
private static final String TABLE_HEADER = "<table border=\"0\" class=\"snarkTorrents\" width=\"100%\">\n" + private static final String TABLE_HEADER = "<table border=\"0\" class=\"snarkTorrents\" width=\"100%\" cellpadding=\"0 10px\">\n" +
"<thead>\n" + "<thead>\n" +
"<tr><th align=\"left\" valign=\"top\">Status</th>\n" + "<tr><th align=\"left\" valign=\"top\">Status</th>\n" +
" <th align=\"left\" valign=\"top\">Torrent</th>\n" + " <th align=\"left\" valign=\"top\">Torrent</th>\n" +
" <th align=\"left\" valign=\"top\">Downloaded</th>\n" + " <th align=\"right\" valign=\"top\">ETA</th>\n" +
" <th align=\"left\" valign=\"top\">Uploaded</th>\n" + " <th align=\"right\" valign=\"top\">Downloaded</th>\n" +
" <th align=\"left\" valign=\"top\">Down Rate</th>\n" + " <th align=\"right\" valign=\"top\">Uploaded</th>\n" +
" <th align=\"left\" valign=\"top\">Up Rate</th>\n" + " <th align=\"right\" valign=\"top\">Down Rate</th>\n" +
" <th align=\"right\" valign=\"top\">Up Rate</th>\n" +
" <th>&nbsp;</th></tr>\n" + " <th>&nbsp;</th></tr>\n" +
"</thead>\n"; "</thead>\n";
private static final String TABLE_EMPTY = "<tr class=\"snarkTorrentEven\">" + private static final String TABLE_EMPTY = "<tr class=\"snarkTorrentEven\">" +
"<td class=\"snarkTorrentEven\" align=\"left\"" + "<td class=\"snarkTorrentEven\" align=\"left\"" +
" valign=\"top\" colspan=\"5\">No torrents</td></tr>\n"; " valign=\"top\" colspan=\"8\">No torrents</td></tr>\n";
private static final String TABLE_FOOTER = "</table>\n"; private static final String TABLE_FOOTER = "</table>\n";

View File

@ -1,4 +1,9 @@
$Id: history.txt,v 1.510 2006-09-04 03:26:22 zzz Exp $ $Id: history.txt,v 1.511 2006-09-06 01:32:54 zzz Exp $
2006-09-07 zzz
* i2psnark: Increase output timeout from 2 min to 4 min
* i2psnark: Orphan debug msg cleanup
* i2psnark: More web rate report cleanup
2006-09-05 zzz 2006-09-05 zzz
* i2psnark: Implement basic partial-piece saves across connections * i2psnark: Implement basic partial-piece saves across connections

View File

@ -15,9 +15,9 @@ import net.i2p.CoreVersion;
* *
*/ */
public class RouterVersion { public class RouterVersion {
public final static String ID = "$Revision: 1.450 $ $Date: 2006-09-04 03:26:21 $"; public final static String ID = "$Revision: 1.451 $ $Date: 2006-09-06 01:32:53 $";
public final static String VERSION = "0.6.1.24"; public final static String VERSION = "0.6.1.24";
public final static long BUILD = 9; public final static long BUILD = 10;
public static void main(String args[]) { public static void main(String args[]) {
System.out.println("I2P Router version: " + VERSION + "-" + BUILD); System.out.println("I2P Router version: " + VERSION + "-" + BUILD);
System.out.println("Router ID: " + RouterVersion.ID); System.out.println("Router ID: " + RouterVersion.ID);