mirror of
https://github.com/yggdrasil-network/yggdrasil-go.git
synced 2024-12-22 07:57:31 +00:00
Update admin socket response sorting
This commit is contained in:
parent
e138fa679c
commit
b8ab843a98
@ -3,7 +3,7 @@ package admin
|
|||||||
import (
|
import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"net"
|
"net"
|
||||||
"sort"
|
"slices"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/yggdrasil-network/yggdrasil-go/src/address"
|
"github.com/yggdrasil-network/yggdrasil-go/src/address"
|
||||||
@ -35,8 +35,8 @@ func (a *AdminSocket) getPathsHandler(_ *GetPathsRequest, res *GetPathsResponse)
|
|||||||
Sequence: p.Sequence,
|
Sequence: p.Sequence,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
sort.SliceStable(res.Paths, func(i, j int) bool {
|
slices.SortStableFunc(res.Paths, func(a, b PathEntry) int {
|
||||||
return strings.Compare(res.Paths[i].PublicKey, res.Paths[j].PublicKey) < 0
|
return strings.Compare(a.PublicKey, b.PublicKey)
|
||||||
})
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,8 @@ package admin
|
|||||||
import (
|
import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"net"
|
"net"
|
||||||
"sort"
|
"slices"
|
||||||
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/yggdrasil-network/yggdrasil-go/src/address"
|
"github.com/yggdrasil-network/yggdrasil-go/src/address"
|
||||||
@ -61,17 +62,26 @@ func (a *AdminSocket) getPeersHandler(_ *GetPeersRequest, res *GetPeersResponse)
|
|||||||
}
|
}
|
||||||
res.Peers = append(res.Peers, peer)
|
res.Peers = append(res.Peers, peer)
|
||||||
}
|
}
|
||||||
sort.Slice(res.Peers, func(i, j int) bool {
|
slices.SortStableFunc(res.Peers, func(a, b PeerEntry) int {
|
||||||
if res.Peers[i].Inbound == res.Peers[j].Inbound {
|
if !a.Inbound && b.Inbound {
|
||||||
if res.Peers[i].PublicKey == res.Peers[j].PublicKey {
|
return -1
|
||||||
if res.Peers[i].Priority == res.Peers[j].Priority {
|
|
||||||
return res.Peers[i].Uptime > res.Peers[j].Uptime
|
|
||||||
}
|
|
||||||
return res.Peers[i].Priority < res.Peers[j].Priority
|
|
||||||
}
|
|
||||||
return res.Peers[i].PublicKey < res.Peers[j].PublicKey
|
|
||||||
}
|
}
|
||||||
return !res.Peers[i].Inbound && res.Peers[j].Inbound
|
if a.Inbound && !b.Inbound {
|
||||||
|
return 1
|
||||||
|
}
|
||||||
|
if d := strings.Compare(a.PublicKey, b.PublicKey); d != 0 {
|
||||||
|
return d
|
||||||
|
}
|
||||||
|
if d := a.Priority - b.Priority; d != 0 {
|
||||||
|
return int(d)
|
||||||
|
}
|
||||||
|
if d := a.Cost - b.Cost; d != 0 {
|
||||||
|
return int(d)
|
||||||
|
}
|
||||||
|
if d := a.Uptime - b.Uptime; d != 0 {
|
||||||
|
return int(d)
|
||||||
|
}
|
||||||
|
return 0
|
||||||
})
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ package admin
|
|||||||
import (
|
import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"net"
|
"net"
|
||||||
"sort"
|
"slices"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/yggdrasil-network/yggdrasil-go/src/address"
|
"github.com/yggdrasil-network/yggdrasil-go/src/address"
|
||||||
@ -36,8 +36,8 @@ func (a *AdminSocket) getSessionsHandler(_ *GetSessionsRequest, res *GetSessions
|
|||||||
Uptime: s.Uptime.Seconds(),
|
Uptime: s.Uptime.Seconds(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
sort.SliceStable(res.Sessions, func(i, j int) bool {
|
slices.SortStableFunc(res.Sessions, func(a, b SessionEntry) int {
|
||||||
return strings.Compare(res.Sessions[i].PublicKey, res.Sessions[j].PublicKey) < 0
|
return strings.Compare(a.PublicKey, b.PublicKey)
|
||||||
})
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,7 @@ package admin
|
|||||||
import (
|
import (
|
||||||
"encoding/hex"
|
"encoding/hex"
|
||||||
"net"
|
"net"
|
||||||
"sort"
|
"slices"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"github.com/yggdrasil-network/yggdrasil-go/src/address"
|
"github.com/yggdrasil-network/yggdrasil-go/src/address"
|
||||||
@ -34,8 +34,8 @@ func (a *AdminSocket) getTreeHandler(_ *GetTreeRequest, res *GetTreeResponse) er
|
|||||||
Sequence: d.Sequence,
|
Sequence: d.Sequence,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
sort.SliceStable(res.Tree, func(i, j int) bool {
|
slices.SortStableFunc(res.Tree, func(a, b TreeEntry) int {
|
||||||
return strings.Compare(res.Tree[i].PublicKey, res.Tree[j].PublicKey) < 0
|
return strings.Compare(a.PublicKey, b.PublicKey)
|
||||||
})
|
})
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user