mirror of
https://github.com/cwinfo/yggdrasil-go.git
synced 2024-11-26 10:41:40 +00:00
code cleanup
This commit is contained in:
parent
31ce854835
commit
3491292599
@ -189,34 +189,34 @@ func (sinfo *searchInfo) checkDHTRes(res *dhtRes) bool {
|
|||||||
if themMasked != destMasked {
|
if themMasked != destMasked {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
// They match, so create a session and send a sessionRequest
|
finishSearch := func(sess *sessionInfo, err error) {
|
||||||
sess, isIn := sinfo.searches.router.sessions.getByTheirPerm(&res.Key)
|
if sess != nil {
|
||||||
if !isIn {
|
|
||||||
sess = sinfo.searches.router.sessions.createSession(&res.Key)
|
|
||||||
if sess == nil {
|
|
||||||
// nil if the DHT search finished but the session wasn't allowed
|
|
||||||
sinfo.callback(nil, errors.New("session not allowed"))
|
|
||||||
// Cleanup
|
|
||||||
delete(sinfo.searches.searches, res.Dest)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
_, isIn := sinfo.searches.router.sessions.getByTheirPerm(&res.Key)
|
|
||||||
if !isIn {
|
|
||||||
panic("This should never happen")
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
sess.coords = res.Coords // In case coords have updated
|
|
||||||
sess.ping(sinfo.searches.router) // In case the remote side needs updating
|
|
||||||
sinfo.callback(nil, errors.New("session already exists"))
|
|
||||||
// Cleanup
|
|
||||||
delete(sinfo.searches.searches, res.Dest)
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
// FIXME (!) replay attacks could mess with coords? Give it a handle (tstamp)?
|
// FIXME (!) replay attacks could mess with coords? Give it a handle (tstamp)?
|
||||||
sess.coords = res.Coords
|
sess.coords = res.Coords
|
||||||
sess.ping(sinfo.searches.router)
|
sess.ping(sinfo.searches.router)
|
||||||
|
}
|
||||||
|
if err != nil {
|
||||||
|
sinfo.callback(nil, err)
|
||||||
|
} else {
|
||||||
sinfo.callback(sess, nil)
|
sinfo.callback(sess, nil)
|
||||||
|
}
|
||||||
// Cleanup
|
// Cleanup
|
||||||
delete(sinfo.searches.searches, res.Dest)
|
delete(sinfo.searches.searches, res.Dest)
|
||||||
|
}
|
||||||
|
// They match, so create a session and send a sessionRequest
|
||||||
|
var err error
|
||||||
|
sess, isIn := sinfo.searches.router.sessions.getByTheirPerm(&res.Key)
|
||||||
|
if !isIn {
|
||||||
|
// Don't already have a session
|
||||||
|
sess = sinfo.searches.router.sessions.createSession(&res.Key)
|
||||||
|
if sess == nil {
|
||||||
|
err = errors.New("session not allowed")
|
||||||
|
} else if _, isIn := sinfo.searches.router.sessions.getByTheirPerm(&res.Key); !isIn {
|
||||||
|
panic("This should never happen")
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
err = errors.New("session already exists")
|
||||||
|
}
|
||||||
|
finishSearch(sess, err)
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user