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
9b85002b
Commit
9b85002b
authored
Nov 25, 2014
by
Felix Lange
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
p2p: remove Msg.Value and MsgLoop
parent
f816fdcb
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
19 additions
and
49 deletions
+19
-49
message.go
p2p/message.go
+0
-32
message_test.go
p2p/message_test.go
+11
-11
peer_test.go
p2p/peer_test.go
+8
-6
No files found.
p2p/message.go
View file @
9b85002b
...
@@ -41,13 +41,6 @@ func encodePayload(params ...interface{}) []byte {
...
@@ -41,13 +41,6 @@ func encodePayload(params ...interface{}) []byte {
return
buf
.
Bytes
()
return
buf
.
Bytes
()
}
}
// Value returns the decoded RLP payload items in a message.
func
(
msg
Msg
)
Value
()
(
*
ethutil
.
Value
,
error
)
{
var
v
[]
interface
{}
err
:=
msg
.
Decode
(
&
v
)
return
ethutil
.
NewValue
(
v
),
err
}
// Decode parse the RLP content of a message into
// Decode parse the RLP content of a message into
// the given value, which must be a pointer.
// the given value, which must be a pointer.
//
//
...
@@ -84,31 +77,6 @@ type MsgReadWriter interface {
...
@@ -84,31 +77,6 @@ type MsgReadWriter interface {
MsgWriter
MsgWriter
}
}
// MsgLoop reads messages off the given reader and
// calls the handler function for each decoded message until
// it returns an error or the peer connection is closed.
//
// If a message is larger than the given maximum size,
// MsgLoop returns an appropriate error.
func
MsgLoop
(
r
MsgReader
,
maxsize
uint32
,
f
func
(
code
uint64
,
data
*
ethutil
.
Value
)
error
)
error
{
for
{
msg
,
err
:=
r
.
ReadMsg
()
if
err
!=
nil
{
return
err
}
if
msg
.
Size
>
maxsize
{
return
newPeerError
(
errInvalidMsg
,
"size %d exceeds maximum size of %d"
,
msg
.
Size
,
maxsize
)
}
value
,
err
:=
msg
.
Value
()
if
err
!=
nil
{
return
err
}
if
err
:=
f
(
msg
.
Code
,
value
);
err
!=
nil
{
return
err
}
}
}
var
magicToken
=
[]
byte
{
34
,
64
,
8
,
145
}
var
magicToken
=
[]
byte
{
34
,
64
,
8
,
145
}
func
writeMsg
(
w
io
.
Writer
,
msg
Msg
)
error
{
func
writeMsg
(
w
io
.
Writer
,
msg
Msg
)
error
{
...
...
p2p/message_test.go
View file @
9b85002b
...
@@ -29,8 +29,7 @@ func TestEncodeDecodeMsg(t *testing.T) {
...
@@ -29,8 +29,7 @@ func TestEncodeDecodeMsg(t *testing.T) {
if
err
:=
writeMsg
(
buf
,
msg
);
err
!=
nil
{
if
err
:=
writeMsg
(
buf
,
msg
);
err
!=
nil
{
t
.
Fatalf
(
"encodeMsg error: %v"
,
err
)
t
.
Fatalf
(
"encodeMsg error: %v"
,
err
)
}
}
// t.Logf("encoded: %x", buf.Bytes())
t
.
Logf
(
"encoded: %x"
,
buf
.
Bytes
())
decmsg
,
err
:=
readMsg
(
buf
)
decmsg
,
err
:=
readMsg
(
buf
)
if
err
!=
nil
{
if
err
!=
nil
{
...
@@ -42,18 +41,19 @@ func TestEncodeDecodeMsg(t *testing.T) {
...
@@ -42,18 +41,19 @@ func TestEncodeDecodeMsg(t *testing.T) {
if
decmsg
.
Size
!=
5
{
if
decmsg
.
Size
!=
5
{
t
.
Errorf
(
"incorrect size %d, want %d"
,
decmsg
.
Size
,
5
)
t
.
Errorf
(
"incorrect size %d, want %d"
,
decmsg
.
Size
,
5
)
}
}
data
,
err
:=
decmsg
.
Value
()
if
err
!=
nil
{
var
data
struct
{
t
.
Fatalf
(
"first payload item decode error: %v"
,
err
)
I
int
S
string
}
}
if
v
:=
data
.
Len
();
v
!=
2
{
if
err
:=
decmsg
.
Decode
(
&
data
);
err
!=
nil
{
t
.
Errorf
(
"incorrect data.Len(): got %v, expected %d"
,
v
,
1
)
t
.
Fatalf
(
"Decode error: %v"
,
err
)
}
}
if
v
:=
data
.
Get
(
0
)
.
Uint
();
v
!=
1
{
if
data
.
I
!=
1
{
t
.
Errorf
(
"incorrect data
[0]: got %v, expected %d"
,
v
,
1
)
t
.
Errorf
(
"incorrect data
.I: got %v, expected %d"
,
data
.
I
,
1
)
}
}
if
v
:=
data
.
Get
(
1
)
.
Str
();
v
!=
"000"
{
if
data
.
S
!=
"000"
{
t
.
Errorf
(
"incorrect data
[1]: got %q, expected %q"
,
v
,
"000"
)
t
.
Errorf
(
"incorrect data
.S: got %q, expected %q"
,
data
.
S
,
"000"
)
}
}
}
}
...
...
p2p/peer_test.go
View file @
9b85002b
...
@@ -2,8 +2,10 @@ package p2p
...
@@ -2,8 +2,10 @@ package p2p
import
(
import
(
"bufio"
"bufio"
"bytes"
"encoding/hex"
"io/ioutil"
"net"
"net"
"reflect"
"testing"
"testing"
"time"
"time"
)
)
...
@@ -53,13 +55,13 @@ func TestPeerProtoReadMsg(t *testing.T) {
...
@@ -53,13 +55,13 @@ func TestPeerProtoReadMsg(t *testing.T) {
if
msg
.
Code
!=
2
{
if
msg
.
Code
!=
2
{
t
.
Errorf
(
"incorrect msg code %d relayed to protocol"
,
msg
.
Code
)
t
.
Errorf
(
"incorrect msg code %d relayed to protocol"
,
msg
.
Code
)
}
}
data
,
err
:=
msg
.
Value
(
)
data
,
err
:=
ioutil
.
ReadAll
(
msg
.
Payload
)
if
err
!=
nil
{
if
err
!=
nil
{
t
.
Errorf
(
"
data decoding
error: %v"
,
err
)
t
.
Errorf
(
"
payload read
error: %v"
,
err
)
}
}
expdata
:=
[]
interface
{}{[]
byte
{
0x01
},
[]
byte
{
0x30
,
0x30
,
0x30
}}
expdata
,
_
:=
hex
.
DecodeString
(
"0183303030"
)
if
!
reflect
.
DeepEqual
(
data
.
Slice
(),
exp
data
)
{
if
!
bytes
.
Equal
(
expdata
,
data
)
{
t
.
Errorf
(
"incorrect msg data %
#v"
,
data
.
Slice
()
)
t
.
Errorf
(
"incorrect msg data %
x"
,
data
)
}
}
close
(
done
)
close
(
done
)
return
nil
return
nil
...
...
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