From 73efd0495a823ab7b9a6b6a0a269d3516c52686f Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Thu, 28 Jul 2016 00:17:54 +0200 Subject: Tweak Handshake --- peer/id.go | 6 ++++++ peer/messages.go | 9 ++++++--- peer/messages_test.go | 5 ++++- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/peer/id.go b/peer/id.go index fa8c6a9..641fca6 100644 --- a/peer/id.go +++ b/peer/id.go @@ -12,3 +12,9 @@ func NewID() []byte { hex.Encode(dst, src) return dst } + +func NewIDFixed() [20]byte { + ret := [20]byte{} + copy(ret[:], NewID()) + return ret +} diff --git a/peer/messages.go b/peer/messages.go index b2bbfc2..6cedecc 100644 --- a/peer/messages.go +++ b/peer/messages.go @@ -1,6 +1,9 @@ package peer -import "io" +import ( + "encoding/binary" + "io" +) type Message int @@ -38,8 +41,8 @@ type Handshake struct { } func (h Handshake) Encode(w io.Writer) { - l := len(h.Proto) - w.Write([]byte{byte(l)}) + l := int8(len(h.Proto)) + binary.Write(w, binary.BigEndian, l) w.Write([]byte(h.Proto)) w.Write(h.Flags[:]) w.Write(h.InfoHash[:]) diff --git a/peer/messages_test.go b/peer/messages_test.go index b47810e..113c090 100644 --- a/peer/messages_test.go +++ b/peer/messages_test.go @@ -6,7 +6,10 @@ import ( ) func TestHandshake(t *testing.T) { - h := Handshake{Proto: Proto} + h := Handshake{ + Proto: Proto, + PeerID: NewIDFixed(), + } b := &bytes.Buffer{} h.Encode(b) t.Log(b.Bytes()) -- cgit v1.2.3