diff --git a/internal/api/message.go b/internal/api/message.go index c91b647..06980be 100644 --- a/internal/api/message.go +++ b/internal/api/message.go @@ -9,9 +9,6 @@ import ( ) const ( - // MaxPayloadLength is the maximum allowed length of a message payload. - MaxPayloadLength = 2097152 - // TokenLength is the length of the message token in bytes. TokenLength = 16 ) @@ -45,9 +42,6 @@ type Message struct { // NewMessage returns a new message with type t and payload p. func NewMessage(t uint16, p []byte) *Message { - if len(p) > MaxPayloadLength { - return nil - } return &Message{ Header: Header{ Type: t, @@ -81,9 +75,6 @@ func ReadMessage(r io.Reader) (*Message, error) { if h.Type == TypeNone || h.Type >= TypeUndefined { return nil, errors.New("invalid message type") } - if h.Length > MaxPayloadLength { - return nil, errors.New("invalid message length") - } if h.Token != token { return nil, errors.New("invalid message token") } diff --git a/internal/api/message_test.go b/internal/api/message_test.go index 8f0c7b9..f6991c3 100644 --- a/internal/api/message_test.go +++ b/internal/api/message_test.go @@ -25,12 +25,6 @@ func TestNewMessage(t *testing.T) { t.Errorf("got %d, want %d", msg.Type, typ) } } - - // invalid payload length - p := [MaxPayloadLength + 1]byte{} - if NewMessage(TypeOK, p[:]) != nil { - t.Error("should not create message with invalid payload length") - } } // TestNewOK tests NewOK. @@ -63,11 +57,8 @@ func TestReadMessageErrors(t *testing.T) { // invalid type {Header: Header{Type: TypeUndefined}}, - // invalid length - {Header: Header{Type: TypeOK, Length: MaxPayloadLength + 1}}, - // short message - {Header: Header{Type: TypeOK, Length: MaxPayloadLength}}, + {Header: Header{Type: TypeOK, Length: 4096}}, // invalid token {Header: Header{Type: TypeOK, Token: [16]byte{1}}}, diff --git a/internal/vpncscript/client_test.go b/internal/vpncscript/client_test.go index 65e45c6..8fd6c4b 100644 --- a/internal/vpncscript/client_test.go +++ b/internal/vpncscript/client_test.go @@ -69,7 +69,7 @@ func TestRunClient(t *testing.T) { return confUpdate } - // test with maximum payload length + // test with varying payload lengths server = api.NewServer(config) go func() { for r := range server.Requests() { @@ -79,23 +79,12 @@ func TestRunClient(t *testing.T) { if err := server.Start(); err != nil { t.Fatal(err) } - if err := runClient(sockfile, getConfUpdate(api.MaxPayloadLength)); err != nil { - t.Fatal(err) - } - server.Stop() - - // test with more than maximum payload length - server = api.NewServer(config) - go func() { - for r := range server.Requests() { - r.Close() + for _, length := range []int{ + 2048, 4096, 8192, 65536, 2097152, + } { + if err := runClient(sockfile, getConfUpdate(length)); err != nil { + t.Errorf("length %d returned error: %v", length, err) } - }() - if err := server.Start(); err != nil { - t.Fatal(err) - } - if err := runClient(sockfile, getConfUpdate(api.MaxPayloadLength+1)); err == nil { - t.Fatal("too long message should return error") } server.Stop() }