From: Matt Joiner Date: Wed, 8 Nov 2017 08:57:05 +0000 (+1100) Subject: metainfo: Omit empty Metainfo.InfoBytes X-Git-Tag: v1.0.0~332 X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=da9cbc7cf0778e5168360e5da2f25c7d51d6fdee;p=btrtrc.git metainfo: Omit empty Metainfo.InfoBytes --- diff --git a/metainfo/metainfo.go b/metainfo/metainfo.go index 55624e99..a27f4d51 100644 --- a/metainfo/metainfo.go +++ b/metainfo/metainfo.go @@ -9,7 +9,7 @@ import ( ) type MetaInfo struct { - InfoBytes bencode.Bytes `bencode:"info"` + InfoBytes bencode.Bytes `bencode:"info,omitempty"` Announce string `bencode:"announce,omitempty"` AnnounceList AnnounceList `bencode:"announce-list,omitempty"` Nodes []Node `bencode:"nodes,omitempty"` diff --git a/metainfo/nodes_test.go b/metainfo/nodes_test.go index 69bb9e67..adebbb36 100644 --- a/metainfo/nodes_test.go +++ b/metainfo/nodes_test.go @@ -1,6 +1,7 @@ package metainfo import ( + "bytes" "testing" "github.com/stretchr/testify/assert" @@ -61,3 +62,13 @@ func TestUnmarshalBadMetainfoNodes(t *testing.T) { err := bencode.Unmarshal([]byte("d5:nodesl1:ai42eee"), &mi) require.Error(t, err) } + +func TestMetainfoEmptyInfoBytes(t *testing.T) { + var buf bytes.Buffer + require.NoError(t, (&MetaInfo{ + // Include a non-empty field that comes after "info". + UrlList: []string{"hello"}, + }).Write(&buf)) + var mi MetaInfo + require.NoError(t, bencode.Unmarshal(buf.Bytes(), &mi)) +}