TODOs and comments
This commit is contained in:
parent
e0c2265cb0
commit
44e44637bf
|
@ -36,6 +36,7 @@ type ConnStats struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
func (cs *ConnStats) wroteMsg(msg *pp.Message) {
|
func (cs *ConnStats) wroteMsg(msg *pp.Message) {
|
||||||
|
// TODO: Track messages and not just chunks.
|
||||||
switch msg.Type {
|
switch msg.Type {
|
||||||
case pp.Piece:
|
case pp.Piece:
|
||||||
cs.ChunksWritten++
|
cs.ChunksWritten++
|
||||||
|
|
|
@ -210,6 +210,7 @@ func (cn *connection) WriteStatus(w io.Writer, t *Torrent) {
|
||||||
cn.completedString(),
|
cn.completedString(),
|
||||||
len(cn.peerTouchedPieces),
|
len(cn.peerTouchedPieces),
|
||||||
cn.stats.ChunksReadUseful,
|
cn.stats.ChunksReadUseful,
|
||||||
|
// TODO: Use ChunksRead? Verify that value is the same as this sum?
|
||||||
cn.stats.ChunksReadUnwanted+cn.stats.ChunksReadUseful,
|
cn.stats.ChunksReadUnwanted+cn.stats.ChunksReadUseful,
|
||||||
cn.stats.ChunksWritten,
|
cn.stats.ChunksWritten,
|
||||||
cn.numLocalRequests(),
|
cn.numLocalRequests(),
|
||||||
|
|
|
@ -17,6 +17,7 @@ type Decoder struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// io.EOF is returned if the source terminates cleanly on a message boundary.
|
// io.EOF is returned if the source terminates cleanly on a message boundary.
|
||||||
|
// TODO: Is that before or after the message?
|
||||||
func (d *Decoder) Decode(msg *Message) (err error) {
|
func (d *Decoder) Decode(msg *Message) (err error) {
|
||||||
var length Integer
|
var length Integer
|
||||||
err = binary.Read(d.R, binary.BigEndian, &length)
|
err = binary.Read(d.R, binary.BigEndian, &length)
|
||||||
|
|
|
@ -134,6 +134,7 @@ type Torrent struct {
|
||||||
// Torrent-level statistics.
|
// Torrent-level statistics.
|
||||||
stats TorrentStats
|
stats TorrentStats
|
||||||
|
|
||||||
|
// Count of each request across active connections.
|
||||||
pendingRequests map[request]int
|
pendingRequests map[request]int
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -848,6 +849,8 @@ func (t *Torrent) worstBadConn() *connection {
|
||||||
if c.stats.ChunksReadUnwanted >= 6 && c.stats.ChunksReadUnwanted > c.stats.ChunksReadUseful {
|
if c.stats.ChunksReadUnwanted >= 6 && c.stats.ChunksReadUnwanted > c.stats.ChunksReadUseful {
|
||||||
return c
|
return c
|
||||||
}
|
}
|
||||||
|
// If the connection is in the worst half of the established
|
||||||
|
// connection quota and is older than a minute.
|
||||||
if wcs.Len() >= (t.maxEstablishedConns+1)/2 {
|
if wcs.Len() >= (t.maxEstablishedConns+1)/2 {
|
||||||
// Give connections 1 minute to prove themselves.
|
// Give connections 1 minute to prove themselves.
|
||||||
if time.Since(c.completedHandshake) > time.Minute {
|
if time.Since(c.completedHandshake) > time.Minute {
|
||||||
|
|
Loading…
Reference in New Issue