mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-16 17:03:46 +00:00
fix:fix not send challenge more than once
Signed-off-by: Chen Kai <281165273grape@gmail.com>
This commit is contained in:
parent
a2be28094b
commit
28d395dccc
1 changed files with 14 additions and 13 deletions
|
|
@ -116,6 +116,7 @@ var (
|
||||||
errInvalidNonceSig = errors.New("invalid ID nonce signature")
|
errInvalidNonceSig = errors.New("invalid ID nonce signature")
|
||||||
errMessageTooShort = errors.New("message contains no data")
|
errMessageTooShort = errors.New("message contains no data")
|
||||||
errMessageDecrypt = errors.New("cannot decrypt message")
|
errMessageDecrypt = errors.New("cannot decrypt message")
|
||||||
|
errChallengeAlreadySent = errors.New("challenge already sent to this node")
|
||||||
)
|
)
|
||||||
|
|
||||||
// Public errors.
|
// Public errors.
|
||||||
|
|
@ -219,7 +220,7 @@ func (c *Codec) Encode(id enode.ID, addr string, packet Packet, challenge *Whoar
|
||||||
if challenge, ok := packet.(*Whoareyou); ok {
|
if challenge, ok := packet.(*Whoareyou); ok {
|
||||||
// check if we already sent a challenge to this node
|
// check if we already sent a challenge to this node
|
||||||
if c.sc.getHandshake(id, addr) != nil {
|
if c.sc.getHandshake(id, addr) != nil {
|
||||||
return nil, Nonce{}, nil
|
return nil, Nonce{}, errChallengeAlreadySent
|
||||||
}
|
}
|
||||||
challenge.ChallengeData = bytesCopy(&c.buf)
|
challenge.ChallengeData = bytesCopy(&c.buf)
|
||||||
c.sc.storeSentHandshake(id, addr, challenge)
|
c.sc.storeSentHandshake(id, addr, challenge)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue