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
87434a09
Commit
87434a09
authored
Jan 17, 2014
by
obscuren
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Ping pong message
parent
ddf82c33
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
9 additions
and
3 deletions
+9
-3
peer.go
peer.go
+7
-1
server.go
server.go
+2
-2
No files found.
peer.go
View file @
87434a09
...
...
@@ -34,6 +34,9 @@ type Peer struct {
// This flag is used by writeMessage to check if messages are allowed
// to be send or not. If no version is known all messages are ignored.
versionKnown
bool
// Last received pong message
lastPong
int64
}
func
NewPeer
(
conn
net
.
Conn
,
server
*
Server
,
inbound
bool
)
*
Peer
{
...
...
@@ -109,7 +112,7 @@ func (p *Peer) writeMessage(msg *ethwire.InOutMsg) {
// Outbound message handler. Outbound messages are handled here
func
(
p
*
Peer
)
HandleOutbound
()
{
// The ping timer. Makes sure that every 2 minutes a ping is send to the peer
tickleTimer
:=
time
.
NewTi
m
er
(
2
*
time
.
Minute
)
tickleTimer
:=
time
.
NewTi
ck
er
(
2
*
time
.
Minute
)
out
:
for
{
select
{
...
...
@@ -173,7 +176,10 @@ out:
case
ethwire
.
MsgGetPeersTy
:
case
ethwire
.
MsgPeersTy
:
case
ethwire
.
MsgPingTy
:
// Respond back with pong
p
.
writeMessage
(
&
ethwire
.
InOutMsg
{
Type
:
ethwire
.
MsgPongTy
})
case
ethwire
.
MsgPongTy
:
p
.
lastPong
=
time
.
Now
()
.
Unix
()
/*
case "blockmine":
...
...
server.go
View file @
87434a09
...
...
@@ -81,13 +81,13 @@ func (s *Server) Broadcast(msgType ethwire.MsgType, data []byte) {
}
const
(
processReapingTimeout
=
1
0
// TODO increase
processReapingTimeout
=
1
// TODO increase
)
func
(
s
*
Server
)
ReapDeadPeers
()
{
for
{
eachPeer
(
s
.
peers
,
func
(
p
*
Peer
,
e
*
list
.
Element
)
{
if
atomic
.
LoadInt32
(
&
p
.
disconnect
)
==
1
{
if
atomic
.
LoadInt32
(
&
p
.
disconnect
)
==
1
||
(
p
.
inbound
&&
(
time
.
Now
()
.
Unix
()
-
p
.
lastPong
)
>
int64
(
5
*
time
.
Minute
))
{
log
.
Println
(
"Dead peer found .. reaping"
)
s
.
peers
.
Remove
(
e
)
...
...
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