From: Matt Joiner Date: Wed, 12 May 2021 11:48:23 +0000 (+1000) Subject: Improve num requests per piece status output X-Git-Tag: v1.29.0~31^2~36 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=233135493fcbef0d27e1de6e63f3eeba9097b9eb;p=btrtrc.git Improve num requests per piece status output --- diff --git a/peerconn.go b/peerconn.go index 1721663c..a5d078e0 100644 --- a/peerconn.go +++ b/peerconn.go @@ -8,6 +8,7 @@ import ( "io" "math/rand" "net" + "sort" "strconv" "strings" "sync" @@ -366,8 +367,19 @@ func (cn *Peer) writeStatus(w io.Writer, t *Torrent) { cn.downloadRate()/(1<<10), ) fmt.Fprintf(w, " requested pieces:") + type pieceNumRequestsType struct { + piece pieceIndex + numRequests int + } + var pieceNumRequests []pieceNumRequestsType for piece, count := range cn.numRequestsByPiece() { - fmt.Fprintf(w, " %v (%v)", piece, count) + pieceNumRequests = append(pieceNumRequests, pieceNumRequestsType{piece, count}) + } + sort.Slice(pieceNumRequests, func(i, j int) bool { + return pieceNumRequests[i].piece < pieceNumRequests[j].piece + }) + for _, elem := range pieceNumRequests { + fmt.Fprintf(w, " %v(%v)", elem.piece, elem.numRequests) } fmt.Fprintf(w, "\n") }