2007-01-16 zzz
* i2psnark: Fix bug caused by last i2psnark checkin (ConnectionAcceptor not started) * Don't start PeerCoordinator, ConnectionAcceptor, and TrackerClient unless starting torrent
This commit is contained in:
@ -234,6 +234,7 @@ public class Snark
|
|||||||
public String rootDataDir = ".";
|
public String rootDataDir = ".";
|
||||||
public CompleteListener completeListener;
|
public CompleteListener completeListener;
|
||||||
public boolean stopped;
|
public boolean stopped;
|
||||||
|
byte[] id;
|
||||||
|
|
||||||
Snark(String torrent, String ip, int user_port,
|
Snark(String torrent, String ip, int user_port,
|
||||||
StorageListener slistener, CoordinatorListener clistener) {
|
StorageListener slistener, CoordinatorListener clistener) {
|
||||||
@ -268,7 +269,7 @@ public class Snark
|
|||||||
// zeros bytes, then three bytes filled with snark and then
|
// zeros bytes, then three bytes filled with snark and then
|
||||||
// sixteen random bytes.
|
// sixteen random bytes.
|
||||||
byte snark = (((3 + 7 + 10) * (1000 - 8)) / 992) - 17;
|
byte snark = (((3 + 7 + 10) * (1000 - 8)) / 992) - 17;
|
||||||
byte[] id = new byte[20];
|
id = new byte[20];
|
||||||
Random random = new Random();
|
Random random = new Random();
|
||||||
int i;
|
int i;
|
||||||
for (i = 0; i < 9; i++)
|
for (i = 0; i < 9; i++)
|
||||||
@ -378,18 +379,18 @@ public class Snark
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* see comment above
|
||||||
|
*
|
||||||
activity = "Collecting pieces";
|
activity = "Collecting pieces";
|
||||||
coordinator = new PeerCoordinator(id, meta, storage, clistener, this);
|
coordinator = new PeerCoordinator(id, meta, storage, clistener, this);
|
||||||
PeerCoordinatorSet set = PeerCoordinatorSet.instance();
|
PeerCoordinatorSet set = PeerCoordinatorSet.instance();
|
||||||
set.add(coordinator);
|
set.add(coordinator);
|
||||||
/*
|
|
||||||
* see comment above
|
|
||||||
*
|
|
||||||
ConnectionAcceptor acceptor = ConnectionAcceptor.instance();
|
ConnectionAcceptor acceptor = ConnectionAcceptor.instance();
|
||||||
acceptor.startAccepting(set, serversocket);
|
acceptor.startAccepting(set, serversocket);
|
||||||
|
trackerclient = new TrackerClient(meta, coordinator);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
trackerclient = new TrackerClient(meta, coordinator);
|
|
||||||
if (start)
|
if (start)
|
||||||
startTorrent();
|
startTorrent();
|
||||||
}
|
}
|
||||||
@ -397,6 +398,24 @@ public class Snark
|
|||||||
* Start up contacting peers and querying the tracker
|
* Start up contacting peers and querying the tracker
|
||||||
*/
|
*/
|
||||||
public void startTorrent() {
|
public void startTorrent() {
|
||||||
|
if (coordinator == null) {
|
||||||
|
I2PServerSocket serversocket = I2PSnarkUtil.instance().getServerSocket();
|
||||||
|
if (serversocket == null)
|
||||||
|
fatal("Unable to listen for I2P connections");
|
||||||
|
else {
|
||||||
|
Destination d = serversocket.getManager().getSession().getMyDestination();
|
||||||
|
debug("Listening on I2P destination " + d.toBase64() + " / " + d.calculateHash().toBase64(), NOTICE);
|
||||||
|
}
|
||||||
|
debug("Starting PeerCoordinator, ConnectionAcceptor, and TrackerClient", NOTICE);
|
||||||
|
activity = "Collecting pieces";
|
||||||
|
coordinator = new PeerCoordinator(id, meta, storage, this, this);
|
||||||
|
PeerCoordinatorSet set = PeerCoordinatorSet.instance();
|
||||||
|
set.add(coordinator);
|
||||||
|
ConnectionAcceptor acceptor = ConnectionAcceptor.instance();
|
||||||
|
acceptor.startAccepting(set, serversocket);
|
||||||
|
trackerclient = new TrackerClient(meta, coordinator);
|
||||||
|
}
|
||||||
|
|
||||||
stopped = false;
|
stopped = false;
|
||||||
boolean coordinatorChanged = false;
|
boolean coordinatorChanged = false;
|
||||||
if (coordinator.halted()) {
|
if (coordinator.halted()) {
|
||||||
|
@ -330,16 +330,23 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
long remaining = (long) snark.storage.needed() * (long) snark.meta.getPieceLength(0);
|
long remaining = (long) snark.storage.needed() * (long) snark.meta.getPieceLength(0);
|
||||||
if (remaining > total)
|
if (remaining > total)
|
||||||
remaining = total;
|
remaining = total;
|
||||||
long downBps = snark.coordinator.getDownloadRate();
|
long downBps = 0;
|
||||||
long upBps = snark.coordinator.getUploadRate();
|
long upBps = 0;
|
||||||
|
if (snark.coordinator != null) {
|
||||||
|
downBps = snark.coordinator.getDownloadRate();
|
||||||
|
upBps = snark.coordinator.getUploadRate();
|
||||||
|
}
|
||||||
long remainingSeconds;
|
long remainingSeconds;
|
||||||
if (downBps > 0)
|
if (downBps > 0)
|
||||||
remainingSeconds = remaining / downBps;
|
remainingSeconds = remaining / downBps;
|
||||||
else
|
else
|
||||||
remainingSeconds = -1;
|
remainingSeconds = -1;
|
||||||
long uploaded = snark.coordinator.getUploaded();
|
|
||||||
boolean isRunning = !snark.stopped;
|
boolean isRunning = !snark.stopped;
|
||||||
stats[0] += snark.coordinator.getDownloaded();
|
long uploaded = 0;
|
||||||
|
if (snark.coordinator != null) {
|
||||||
|
uploaded = snark.coordinator.getUploaded();
|
||||||
|
stats[0] += snark.coordinator.getDownloaded();
|
||||||
|
}
|
||||||
stats[1] += uploaded;
|
stats[1] += uploaded;
|
||||||
if (isRunning) {
|
if (isRunning) {
|
||||||
stats[2] += downBps;
|
stats[2] += downBps;
|
||||||
@ -349,9 +356,14 @@ public class I2PSnarkServlet extends HttpServlet {
|
|||||||
boolean isValid = snark.meta != null;
|
boolean isValid = snark.meta != null;
|
||||||
boolean singleFile = snark.meta.getFiles() == null;
|
boolean singleFile = snark.meta.getFiles() == null;
|
||||||
|
|
||||||
String err = snark.coordinator.trackerProblems;
|
String err = null;
|
||||||
int curPeers = snark.coordinator.getPeerCount();
|
int curPeers = 0;
|
||||||
int knownPeers = snark.coordinator.trackerSeenPeers;
|
int knownPeers = 0;
|
||||||
|
if (snark.coordinator != null) {
|
||||||
|
err = snark.coordinator.trackerProblems;
|
||||||
|
curPeers = snark.coordinator.getPeerCount();
|
||||||
|
knownPeers = snark.coordinator.trackerSeenPeers;
|
||||||
|
}
|
||||||
|
|
||||||
String statusString = "Unknown";
|
String statusString = "Unknown";
|
||||||
if (err != null) {
|
if (err != null) {
|
||||||
|
@ -1,4 +1,10 @@
|
|||||||
$Id: history.txt,v 1.536 2007-01-14 23:36:06 zzz Exp $
|
$Id: history.txt,v 1.537 2007-01-15 01:35:59 jrandom Exp $
|
||||||
|
|
||||||
|
2007-01-16 zzz
|
||||||
|
* i2psnark: Fix bug caused by last i2psnark checkin
|
||||||
|
(ConnectionAcceptor not started)
|
||||||
|
* Don't start PeerCoordinator, ConnectionAcceptor,
|
||||||
|
and TrackerClient unless starting torrent
|
||||||
|
|
||||||
2007-01-15 jrandom
|
2007-01-15 jrandom
|
||||||
* small guard against unnecessary streaming lib reset packets
|
* small guard against unnecessary streaming lib reset packets
|
||||||
|
@ -15,9 +15,9 @@ import net.i2p.CoreVersion;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class RouterVersion {
|
public class RouterVersion {
|
||||||
public final static String ID = "$Revision: 1.471 $ $Date: 2007-01-14 23:36:03 $";
|
public final static String ID = "$Revision: 1.472 $ $Date: 2007-01-15 01:36:07 $";
|
||||||
public final static String VERSION = "0.6.1.26";
|
public final static String VERSION = "0.6.1.26";
|
||||||
public final static long BUILD = 5;
|
public final static long BUILD = 6;
|
||||||
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);
|
||||||
|
Reference in New Issue
Block a user