diff --git a/main.go b/main.go index 4643ba2..787e8bd 100644 --- a/main.go +++ b/main.go @@ -18,6 +18,7 @@ package main import ( "bufio" + "cmp" "context" "errors" "flag" @@ -31,6 +32,7 @@ import ( "os/signal" "regexp" "runtime/debug" + "slices" "strings" "sync" "time" @@ -52,6 +54,7 @@ const routingTableTemplate = ` Extended? Distance Last seen + Port {{range $route := . }} @@ -60,6 +63,7 @@ const routingTableTemplate = ` {{if $route.Extended}}✅{{else}}❌{{end}} {{$route.Distance}} {{$route.LastSeenAgo}} + {{if $route.Peer}}{{$route.Peer.RemoteAddr}}{{else}}-{{end}} {{end}} @@ -165,7 +169,11 @@ func main() { // -------------------------------- Tables -------------------------------- routes := router.NewRoutingTable() _, done := status.AddItem(ctx, "Routing table", routingTableTemplate, func(context.Context) (any, error) { - return routes.Dump(), nil + rs := routes.Dump() + slices.SortFunc(rs, func(ra, rb router.Route) int { + return cmp.Compare(ra.NetStart, rb.NetStart) + }) + return rs, nil }) defer done() diff --git a/router/peer.go b/router/peer.go index cc7a1c7..0016ade 100644 --- a/router/peer.go +++ b/router/peer.go @@ -387,7 +387,7 @@ func (p *Peer) Handle(ctx context.Context) error { ddp.Network(nt.RangeStart), ddp.Network(nt.RangeEnd), p, - nt.Distance, + nt.Distance+1, ) } diff --git a/router/rtmp.go b/router/rtmp.go index 18891bf..15fb52c 100644 --- a/router/rtmp.go +++ b/router/rtmp.go @@ -226,7 +226,7 @@ func (m *RTMPMachine) dataPackets(myAddr ddp.Addr) []*rtmp.DataPacket { Extended: rt.Extended, RangeStart: rt.NetStart, RangeEnd: rt.NetEnd, - Distance: rt.Distance + 1, + Distance: rt.Distance, }) } // "The first tuple in RTMP Data packets sent on extended