swarm/storage/feed: Expose MaxUpdateDataLength constant (#17858)

This commit is contained in:
Javier Peletier 2018-10-08 10:57:38 +02:00 committed by Anton Evangelatov
parent f95811e65b
commit c5cb214f68
2 changed files with 6 additions and 4 deletions

View File

@ -42,7 +42,9 @@ type Update struct {
} }
const minimumUpdateDataLength = idLength + headerLength + 1 const minimumUpdateDataLength = idLength + headerLength + 1
const maxUpdateDataLength = chunk.DefaultSize - signatureLength - idLength - headerLength
//MaxUpdateDataLength indicates the maximum payload size for a feed update
const MaxUpdateDataLength = chunk.DefaultSize - signatureLength - idLength - headerLength
// binaryPut serializes the feed update information into the given slice // binaryPut serializes the feed update information into the given slice
func (r *Update) binaryPut(serializedData []byte) error { func (r *Update) binaryPut(serializedData []byte) error {
@ -51,8 +53,8 @@ func (r *Update) binaryPut(serializedData []byte) error {
return NewError(ErrInvalidValue, "a feed update must contain data") return NewError(ErrInvalidValue, "a feed update must contain data")
} }
if datalength > maxUpdateDataLength { if datalength > MaxUpdateDataLength {
return NewErrorf(ErrInvalidValue, "feed update data is too big (length=%d). Max length=%d", datalength, maxUpdateDataLength) return NewErrorf(ErrInvalidValue, "feed update data is too big (length=%d). Max length=%d", datalength, MaxUpdateDataLength)
} }
if len(serializedData) != r.binaryLength() { if len(serializedData) != r.binaryLength() {

View File

@ -35,7 +35,7 @@ func TestUpdateLengthCheck(t *testing.T) {
testBinarySerializerLengthCheck(t, getTestFeedUpdate()) testBinarySerializerLengthCheck(t, getTestFeedUpdate())
// Test fail if update is too big // Test fail if update is too big
update := getTestFeedUpdate() update := getTestFeedUpdate()
update.data = make([]byte, maxUpdateDataLength+100) update.data = make([]byte, MaxUpdateDataLength+100)
serialized := make([]byte, update.binaryLength()) serialized := make([]byte, update.binaryLength())
if err := update.binaryPut(serialized); err == nil { if err := update.binaryPut(serialized); err == nil {
t.Fatal("Expected update.binaryPut to fail since update is too big") t.Fatal("Expected update.binaryPut to fail since update is too big")