sort search response results before sending requests

This commit is contained in:
Arceliar 2020-02-06 17:38:42 -06:00
parent 0da433f5d2
commit 70659bfb91

View File

@ -16,6 +16,7 @@ package yggdrasil
import ( import (
"errors" "errors"
"sort"
"time" "time"
"github.com/yggdrasil-network/yggdrasil-go/src/crypto" "github.com/yggdrasil-network/yggdrasil-go/src/crypto"
@ -100,6 +101,11 @@ func (sinfo *searchInfo) addToSearch(res *dhtRes) {
// Response is closer to the destination // Response is closer to the destination
sinfo.toVisit = append(sinfo.toVisit, info) sinfo.toVisit = append(sinfo.toVisit, info)
} }
// Sort
sort.SliceStable(sinfo.toVisit, func(i, j int) bool {
// Should return true if i is closer to the destination than j
return dht_ordered(&res.Dest, sinfo.toVisit[i].getNodeID(), sinfo.toVisit[j].getNodeID())
})
} }
} }