From fb528c47c0c51a7a204a18227349e6500aba49ab Mon Sep 17 00:00:00 2001 From: obscuren Date: Tue, 16 Sep 2014 16:19:48 +0200 Subject: Moved code --- ethwire/messaging.go | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) (limited to 'ethwire/messaging.go') diff --git a/ethwire/messaging.go b/ethwire/messaging.go index 99f6be8db..4f4393a9d 100644 --- a/ethwire/messaging.go +++ b/ethwire/messaging.go @@ -109,29 +109,24 @@ func ReadMessages(conn net.Conn) (msgs []*Msg, err error) { } } - if n == 0 { + if n == 0 && len(buff) == 0 { continue } + buff = append(buff, b[:n]...) if msgLength == 0 { // Check if the received 4 first bytes are the magic token - if bytes.Compare(MagicToken, b[:4]) != 0 { - return nil, fmt.Errorf("MagicToken mismatch. Received %v", b[:4]) + if bytes.Compare(MagicToken, buff[:4]) != 0 { + return nil, fmt.Errorf("MagicToken mismatch. Received %v", buff[:4]) } - // Remove the token - b = b[4:] // Read the length of the message - msgLength = int(ethutil.BytesToNumber(b[:4])) - - // Remove the length - b = b[4:] + msgLength = int(ethutil.BytesToNumber(buff[4:8])) - n -= 8 + // Remove the token and length + buff = buff[8:] } - buff = append(buff, b[:n]...) - if len(buff) >= msgLength { messages = append(messages, buff[:msgLength]) buff = buff[msgLength:] -- cgit