From d0bc89fb7404c5f09e92e2cb81c7193417089074 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Wed, 19 Sep 2018 13:28:10 -0400 Subject: [PATCH] make the idle_timeout transport parameter optional --- internal/handshake/transport_parameter_test.go | 6 ------ internal/handshake/transport_parameters.go | 7 ------- 2 files changed, 13 deletions(-) diff --git a/internal/handshake/transport_parameter_test.go b/internal/handshake/transport_parameter_test.go index 34637a205..62b682e69 100644 --- a/internal/handshake/transport_parameter_test.go +++ b/internal/handshake/transport_parameter_test.go @@ -160,12 +160,6 @@ var _ = Describe("Transport Parameters", func() { Expect(params.StatelessResetToken).To(Equal(statelessResetToken)) }) - It("rejects the parameters if the idle_timeout is missing", func() { - delete(parameters, idleTimeoutParameterID) - err := params.unmarshal(marshal(parameters)) - Expect(err).To(MatchError("missing parameter")) - }) - It("doesn't allow values below the minimum remote idle timeout", func() { t := 2 * time.Second Expect(t).To(BeNumerically("<", protocol.MinRemoteIdleTimeout)) diff --git a/internal/handshake/transport_parameters.go b/internal/handshake/transport_parameters.go index 9ed0aeb55..273a203b5 100644 --- a/internal/handshake/transport_parameters.go +++ b/internal/handshake/transport_parameters.go @@ -3,7 +3,6 @@ package handshake import ( "bytes" "encoding/binary" - "errors" "fmt" "time" @@ -97,8 +96,6 @@ func (p *TransportParameters) getHelloMap() map[Tag][]byte { } func (p *TransportParameters) unmarshal(data []byte) error { - var foundIdleTimeout bool - for len(data) >= 4 { paramID := binary.BigEndian.Uint16(data[:2]) paramLen := int(binary.BigEndian.Uint16(data[2:4])) @@ -128,7 +125,6 @@ func (p *TransportParameters) unmarshal(data []byte) error { } p.MaxUniStreams = binary.BigEndian.Uint16(data[:2]) case idleTimeoutParameterID: - foundIdleTimeout = true if paramLen != 2 { return fmt.Errorf("wrong length for idle_timeout: %d (expected 2)", paramLen) } @@ -159,9 +155,6 @@ func (p *TransportParameters) unmarshal(data []byte) error { if len(data) != 0 { return fmt.Errorf("should have read all data. Still have %d bytes", len(data)) } - if !foundIdleTimeout { - return errors.New("missing parameter") - } return nil }