mirror of
https://github.com/yggdrasil-network/yggdrasil-go.git
synced 2025-04-29 06:35:07 +03:00
work in progress to make searches use parallel threads per response, so one malicious node doesn't block progress from honest ones
This commit is contained in:
parent
d7d0c2629c
commit
d0e6846173
2 changed files with 80 additions and 65 deletions
|
@ -130,8 +130,8 @@ func (c *Conn) search() error {
|
|||
close(done)
|
||||
}
|
||||
}
|
||||
sinfo := c.core.router.searches.newIterSearch(c.nodeID, c.nodeMask, searchCompleted)
|
||||
sinfo.continueSearch()
|
||||
sinfo, infos := c.core.router.searches.newIterSearch(c.nodeID, c.nodeMask, searchCompleted)
|
||||
sinfo.continueSearch(infos)
|
||||
} else {
|
||||
err = errors.New("search already exists")
|
||||
close(done)
|
||||
|
@ -152,10 +152,11 @@ func (c *Conn) doSearch() {
|
|||
if !isIn {
|
||||
// Nothing was found, so create a new search
|
||||
searchCompleted := func(sinfo *sessionInfo, e error) {}
|
||||
sinfo = c.core.router.searches.newIterSearch(c.nodeID, c.nodeMask, searchCompleted)
|
||||
var infos []*dhtInfo
|
||||
sinfo, infos = c.core.router.searches.newIterSearch(c.nodeID, c.nodeMask, searchCompleted)
|
||||
c.core.log.Debugf("%s DHT search started: %p", c.String(), sinfo)
|
||||
// Start the search
|
||||
sinfo.continueSearch()
|
||||
sinfo.continueSearch(infos)
|
||||
}
|
||||
}
|
||||
c.core.router.Act(c.session, routerWork)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue