From c8b6e6fd9b443dfa0864f8dc8e3aece58ad79bc0 Mon Sep 17 00:00:00 2001 From: Laurent Etiemble Date: Fri, 19 Feb 2016 20:47:31 +0100 Subject: [PATCH] Increase maximum allowed file size to 10 Mblocks Upgrade FileInfo up to 10000000 blocks. 1310 GB files can be shared. Increase limit when unmarshaling XDR. Increase the size of message. --- lib/db/truncated.go | 6 +++--- lib/protocol/message.go | 2 +- lib/protocol/message_xdr.go | 12 ++++++------ lib/protocol/protocol.go | 4 ++-- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/lib/db/truncated.go b/lib/db/truncated.go index a1d31977..b4dbb86d 100644 --- a/lib/db/truncated.go +++ b/lib/db/truncated.go @@ -27,12 +27,12 @@ func (o *FileInfoTruncated) UnmarshalXDRFrom(u *xdr.Unmarshaller) error { o.LocalVersion = int64(u.UnmarshalUint64()) _BlocksSize := int(u.UnmarshalUint32()) if _BlocksSize < 0 { - return xdr.ElementSizeExceeded("Blocks", _BlocksSize, 1000000) + return xdr.ElementSizeExceeded("Blocks", _BlocksSize, 10000000) } else if _BlocksSize == 0 { o.Blocks = nil } else { - if _BlocksSize > 1000000 { - return xdr.ElementSizeExceeded("Blocks", _BlocksSize, 1000000) + if _BlocksSize > 10000000 { + return xdr.ElementSizeExceeded("Blocks", _BlocksSize, 10000000) } for i := 0; i < _BlocksSize; i++ { size := int64(u.UnmarshalUint32()) diff --git a/lib/protocol/message.go b/lib/protocol/message.go index f6ef33f6..00d72c36 100644 --- a/lib/protocol/message.go +++ b/lib/protocol/message.go @@ -27,7 +27,7 @@ type FileInfo struct { Version Vector LocalVersion int64 CachedSize int64 // noencode (cache only) - Blocks []BlockInfo // max:1000000 + Blocks []BlockInfo // max:10000000 } func (f FileInfo) String() string { diff --git a/lib/protocol/message_xdr.go b/lib/protocol/message_xdr.go index 4b4aff73..8c24dd4e 100644 --- a/lib/protocol/message_xdr.go +++ b/lib/protocol/message_xdr.go @@ -176,7 +176,7 @@ struct FileInfo { hyper Modified; Vector Version; hyper LocalVersion; - BlockInfo Blocks<1000000>; + BlockInfo Blocks<10000000>; } */ @@ -212,8 +212,8 @@ func (o FileInfo) MarshalXDRInto(m *xdr.Marshaller) error { return err } m.MarshalUint64(uint64(o.LocalVersion)) - if l := len(o.Blocks); l > 1000000 { - return xdr.ElementSizeExceeded("Blocks", l, 1000000) + if l := len(o.Blocks); l > 10000000 { + return xdr.ElementSizeExceeded("Blocks", l, 10000000) } m.MarshalUint32(uint32(len(o.Blocks))) for i := range o.Blocks { @@ -236,12 +236,12 @@ func (o *FileInfo) UnmarshalXDRFrom(u *xdr.Unmarshaller) error { o.LocalVersion = int64(u.UnmarshalUint64()) _BlocksSize := int(u.UnmarshalUint32()) if _BlocksSize < 0 { - return xdr.ElementSizeExceeded("Blocks", _BlocksSize, 1000000) + return xdr.ElementSizeExceeded("Blocks", _BlocksSize, 10000000) } else if _BlocksSize == 0 { o.Blocks = nil } else { - if _BlocksSize > 1000000 { - return xdr.ElementSizeExceeded("Blocks", _BlocksSize, 1000000) + if _BlocksSize > 10000000 { + return xdr.ElementSizeExceeded("Blocks", _BlocksSize, 10000000) } if _BlocksSize <= len(o.Blocks) { o.Blocks = o.Blocks[:_BlocksSize] diff --git a/lib/protocol/protocol.go b/lib/protocol/protocol.go index c2412230..37fe9570 100644 --- a/lib/protocol/protocol.go +++ b/lib/protocol/protocol.go @@ -19,8 +19,8 @@ const ( // BlockSize is the standard ata block size (128 KiB) BlockSize = 128 << 10 - // MaxMessageLen is the largest message size allowed on the wire. (64 MiB) - MaxMessageLen = 64 << 20 + // MaxMessageLen is the largest message size allowed on the wire. (512 MiB) + MaxMessageLen = 64 << 23 ) const (