cmd/mist: fix peer window

This commit is contained in:
Felix Lange
2015-02-13 23:55:50 +01:00
parent 4bef3ce284
commit 8464e43eaf
3 changed files with 37 additions and 25 deletions

View File

@ -31,6 +31,7 @@ import (
"os"
"path"
"runtime"
"sort"
"strconv"
"time"
@ -449,6 +450,7 @@ func (gui *Gui) update() {
case <-peerUpdateTicker.C:
gui.setPeerInfo()
case <-generalUpdateTicker.C:
statusText := "#" + gui.eth.ChainManager().CurrentBlock().Number().String()
lastBlockLabel.Set("text", statusText)
@ -499,12 +501,34 @@ NumGC: %d
))
}
type qmlpeer struct{ Addr, NodeID, Caps string }
type peersByID []*qmlpeer
func (s peersByID) Len() int { return len(s) }
func (s peersByID) Less(i, j int) bool { return s[i].NodeID < s[j].NodeID }
func (s peersByID) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
func (gui *Gui) setPeerInfo() {
gui.win.Root().Call("setPeers", fmt.Sprintf("%d / %d", gui.eth.PeerCount(), gui.eth.MaxPeers))
gui.win.Root().Call("resetPeers")
//for _, peer := range gui.xeth.Peers() {
//gui.win.Root().Call("addPeer", peer)
//}
peers := gui.eth.Peers()
qpeers := make(peersByID, len(peers))
for i, p := range peers {
qpeers[i] = &qmlpeer{
NodeID: p.ID().String(),
Addr: p.RemoteAddr().String(),
Caps: fmt.Sprint(p.Caps()),
}
}
// we need to sort the peers because they jump around randomly
// otherwise. order returned by eth.Peers is random because they
// are taken from a map.
sort.Sort(qpeers)
gui.win.Root().Call("setPeerCounters", fmt.Sprintf("%d / %d", len(peers), gui.eth.MaxPeers()))
gui.win.Root().Call("clearPeers")
for _, p := range qpeers {
gui.win.Root().Call("addPeer", p)
}
}
func (gui *Gui) privateKey() string {