Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
3bb6815f
Unverified
Commit
3bb6815f
authored
Dec 25, 2019
by
Felföldi Zsolt
Committed by
GitHub
Dec 25, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
les: do not disconnect another server (#20453)
parent
a67fe48b
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
20 additions
and
9 deletions
+20
-9
peer.go
les/peer.go
+11
-5
server_handler.go
les/server_handler.go
+9
-4
No files found.
les/peer.go
View file @
3bb6815f
...
...
@@ -113,7 +113,7 @@ type peer struct {
fcParams
flowcontrol
.
ServerParams
fcCosts
requestCostTable
trusted
bool
trusted
,
server
bool
onlyAnnounce
bool
chainSince
,
chainRecent
uint64
stateSince
,
stateRecent
uint64
...
...
@@ -675,11 +675,16 @@ func (p *peer) Handshake(td *big.Int, head common.Hash, headNum uint64, genesis
}
if
server
!=
nil
{
p
.
server
=
recv
.
get
(
"flowControl/MRR"
,
nil
)
==
nil
if
p
.
server
{
p
.
announceType
=
announceTypeNone
// connected to another server, send no messages
}
else
{
if
recv
.
get
(
"announceType"
,
&
p
.
announceType
)
!=
nil
{
// set default announceType on server side
p
.
announceType
=
announceTypeSimple
}
p
.
fcClient
=
flowcontrol
.
NewClientNode
(
server
.
fcManager
,
server
.
defParams
)
}
}
else
{
if
recv
.
get
(
"serveChainSince"
,
&
p
.
chainSince
)
!=
nil
{
p
.
onlyAnnounce
=
true
...
...
@@ -726,6 +731,7 @@ func (p *peer) Handshake(td *big.Int, head common.Hash, headNum uint64, genesis
}
}
}
p
.
server
=
true
}
p
.
headInfo
=
&
announceData
{
Td
:
rTd
,
Hash
:
rHash
,
Number
:
rNum
}
return
nil
...
...
les/server_handler.go
View file @
3bb6815f
...
...
@@ -108,10 +108,6 @@ func (h *serverHandler) runPeer(version uint, p *p2p.Peer, rw p2p.MsgReadWriter)
}
func
(
h
*
serverHandler
)
handle
(
p
*
peer
)
error
{
// Reject light clients if server is not synced.
if
!
h
.
synced
()
{
return
p2p
.
DiscRequested
}
p
.
Log
()
.
Debug
(
"Light Ethereum peer connected"
,
"name"
,
p
.
Name
())
// Execute the LES handshake
...
...
@@ -125,6 +121,15 @@ func (h *serverHandler) handle(p *peer) error {
p
.
Log
()
.
Debug
(
"Light Ethereum handshake failed"
,
"err"
,
err
)
return
err
}
if
p
.
server
{
// connected to another server, no messages expected, just wait for disconnection
_
,
err
:=
p
.
rw
.
ReadMsg
()
return
err
}
// Reject light clients if server is not synced.
if
!
h
.
synced
()
{
return
p2p
.
DiscRequested
}
defer
p
.
fcClient
.
Disconnect
()
// Disconnect the inbound peer if it's rejected by clientPool
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment