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
81e26d5a
Commit
81e26d5a
authored
Jan 17, 2019
by
Elad
Committed by
Anton Evangelatov
Jan 17, 2019
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
swarm/network: fix data race warning on TestBzzHandshakeLightNode (#18459)
parent
ba6349d3
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
6 deletions
+13
-6
protocol.go
swarm/network/protocol.go
+3
-3
protocol_test.go
swarm/network/protocol_test.go
+10
-3
No files found.
swarm/network/protocol.go
View file @
81e26d5a
...
...
@@ -168,7 +168,7 @@ func (b *Bzz) APIs() []rpc.API {
func
(
b
*
Bzz
)
RunProtocol
(
spec
*
protocols
.
Spec
,
run
func
(
*
BzzPeer
)
error
)
func
(
*
p2p
.
Peer
,
p2p
.
MsgReadWriter
)
error
{
return
func
(
p
*
p2p
.
Peer
,
rw
p2p
.
MsgReadWriter
)
error
{
// wait for the bzz protocol to perform the handshake
handshake
,
_
:=
b
.
GetHandshake
(
p
.
ID
())
handshake
,
_
:=
b
.
Get
OrCreate
Handshake
(
p
.
ID
())
defer
b
.
removeHandshake
(
p
.
ID
())
select
{
case
<-
handshake
.
done
:
...
...
@@ -213,7 +213,7 @@ func (b *Bzz) performHandshake(p *protocols.Peer, handshake *HandshakeMsg) error
// runBzz is the p2p protocol run function for the bzz base protocol
// that negotiates the bzz handshake
func
(
b
*
Bzz
)
runBzz
(
p
*
p2p
.
Peer
,
rw
p2p
.
MsgReadWriter
)
error
{
handshake
,
_
:=
b
.
GetHandshake
(
p
.
ID
())
handshake
,
_
:=
b
.
Get
OrCreate
Handshake
(
p
.
ID
())
if
!<-
handshake
.
init
{
return
fmt
.
Errorf
(
"%08x: bzz already started on peer %08x"
,
b
.
localAddr
.
Over
()[
:
4
],
p
.
ID
()
.
Bytes
()[
:
4
])
}
...
...
@@ -303,7 +303,7 @@ func (b *Bzz) removeHandshake(peerID enode.ID) {
}
// GetHandshake returns the bzz handhake that the remote peer with peerID sent
func
(
b
*
Bzz
)
GetHandshake
(
peerID
enode
.
ID
)
(
*
HandshakeMsg
,
bool
)
{
func
(
b
*
Bzz
)
Get
OrCreate
Handshake
(
peerID
enode
.
ID
)
(
*
HandshakeMsg
,
bool
)
{
b
.
mtx
.
Lock
()
defer
b
.
mtx
.
Unlock
()
handshake
,
found
:=
b
.
handshakes
[
peerID
]
...
...
swarm/network/protocol_test.go
View file @
81e26d5a
...
...
@@ -21,6 +21,7 @@ import (
"fmt"
"os"
"testing"
"time"
"github.com/ethereum/go-ethereum/log"
"github.com/ethereum/go-ethereum/p2p"
...
...
@@ -224,7 +225,7 @@ func TestBzzHandshakeLightNode(t *testing.T) {
for
_
,
test
:=
range
lightNodeTests
{
t
.
Run
(
test
.
name
,
func
(
t
*
testing
.
T
)
{
randomAddr
:=
RandomAddr
()
pt
:=
newBzzHandshakeTester
(
t
,
1
,
randomAddr
,
false
)
pt
:=
newBzzHandshakeTester
(
nil
,
1
,
randomAddr
,
false
)
// TODO change signature - t is not used anywhere
node
:=
pt
.
Nodes
[
0
]
addr
:=
NewAddr
(
node
)
...
...
@@ -237,8 +238,14 @@ func TestBzzHandshakeLightNode(t *testing.T) {
t
.
Fatal
(
err
)
}
if
pt
.
bzz
.
handshakes
[
node
.
ID
()]
.
LightNode
!=
test
.
lightNode
{
t
.
Fatalf
(
"peer LightNode flag is %v, should be %v"
,
pt
.
bzz
.
handshakes
[
node
.
ID
()]
.
LightNode
,
test
.
lightNode
)
select
{
case
<-
pt
.
bzz
.
handshakes
[
node
.
ID
()]
.
done
:
if
pt
.
bzz
.
handshakes
[
node
.
ID
()]
.
LightNode
!=
test
.
lightNode
{
t
.
Fatalf
(
"peer LightNode flag is %v, should be %v"
,
pt
.
bzz
.
handshakes
[
node
.
ID
()]
.
LightNode
,
test
.
lightNode
)
}
case
<-
time
.
After
(
10
*
time
.
Second
)
:
t
.
Fatal
(
"test timeout"
)
}
})
}
...
...
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