]> Cypherpunks.ru repositories - nncp.git/commitdiff
Sort nodes by name in nncp-stat output
authorSergey Matveev <stargrave@stargrave.org>
Mon, 21 Aug 2017 08:52:54 +0000 (11:52 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Mon, 21 Aug 2017 08:52:54 +0000 (11:52 +0300)
src/cypherpunks.ru/nncp/cmd/nncp-stat/main.go

index f5b02875ef36675e213faccc6767c8b4ada10674..0c27b1b8d27f4ae0940d806cf539c29e0d139a39 100644 (file)
@@ -25,6 +25,7 @@ import (
        "io/ioutil"
        "log"
        "os"
+       "sort"
 
        "cypherpunks.ru/nncp"
        "github.com/dustin/go-humanize"
@@ -74,20 +75,30 @@ func main() {
                }
        }
 
-       for nodeId, node := range ctx.Neigh {
-               if nodeOnly != nil && nodeId != *nodeOnly.Id {
+       nodeNames := make([]string, 0, len(ctx.Neigh))
+       nodeNameToNode := make(map[string]*nncp.Node, len(ctx.Neigh))
+       for _, node := range ctx.Neigh {
+               nodeNames = append(nodeNames, node.Name)
+               nodeNameToNode[node.Name] = node
+       }
+       sort.Strings(nodeNames)
+
+       var node *nncp.Node
+       for _, nodeName := range nodeNames {
+               node = nodeNameToNode[nodeName]
+               if nodeOnly != nil && *node.Id != *nodeOnly.Id {
                        continue
                }
                rxNums := make(map[uint8]int)
                rxBytes := make(map[uint8]int64)
-               for job := range ctx.Jobs(&nodeId, nncp.TRx) {
+               for job := range ctx.Jobs(node.Id, nncp.TRx) {
                        job.Fd.Close()
                        rxNums[job.PktEnc.Nice] = rxNums[job.PktEnc.Nice] + 1
                        rxBytes[job.PktEnc.Nice] = rxBytes[job.PktEnc.Nice] + job.Size
                }
                txNums := make(map[uint8]int)
                txBytes := make(map[uint8]int64)
-               for job := range ctx.Jobs(&nodeId, nncp.TTx) {
+               for job := range ctx.Jobs(node.Id, nncp.TTx) {
                        job.Fd.Close()
                        txNums[job.PktEnc.Nice] = txNums[job.PktEnc.Nice] + 1
                        txBytes[job.PktEnc.Nice] = txBytes[job.PktEnc.Nice] + job.Size