From 66d4e9e5d7f99528fff4c3032499ad6318e5ab30 Mon Sep 17 00:00:00 2001 From: Jakob Borg Date: Thu, 12 Jun 2014 18:06:46 +0200 Subject: [PATCH] Prevent possible reordering of Index/IndexUpdate on send (ref #344) --- protocol/protocol.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/protocol/protocol.go b/protocol/protocol.go index 8eb6789f..def58f38 100644 --- a/protocol/protocol.go +++ b/protocol/protocol.go @@ -165,9 +165,11 @@ func (c *rawConnection) Index(repo string, idx []FileInfo) { } idx = diff } - c.imut.Unlock() - c.send(header{0, -1, msgType}, IndexMessage{repo, idx}) + if len(idx) > 0 { + c.send(header{0, -1, msgType}, IndexMessage{repo, idx}) + } + c.imut.Unlock() } // Request returns the bytes for the specified block after fetching them from the connected peer.