forked from quic-go/quic-go
make the idle_timeout transport parameter optional
This commit is contained in:
@@ -160,12 +160,6 @@ var _ = Describe("Transport Parameters", func() {
|
|||||||
Expect(params.StatelessResetToken).To(Equal(statelessResetToken))
|
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() {
|
It("doesn't allow values below the minimum remote idle timeout", func() {
|
||||||
t := 2 * time.Second
|
t := 2 * time.Second
|
||||||
Expect(t).To(BeNumerically("<", protocol.MinRemoteIdleTimeout))
|
Expect(t).To(BeNumerically("<", protocol.MinRemoteIdleTimeout))
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ package handshake
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"encoding/binary"
|
"encoding/binary"
|
||||||
"errors"
|
|
||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
@@ -97,8 +96,6 @@ func (p *TransportParameters) getHelloMap() map[Tag][]byte {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (p *TransportParameters) unmarshal(data []byte) error {
|
func (p *TransportParameters) unmarshal(data []byte) error {
|
||||||
var foundIdleTimeout bool
|
|
||||||
|
|
||||||
for len(data) >= 4 {
|
for len(data) >= 4 {
|
||||||
paramID := binary.BigEndian.Uint16(data[:2])
|
paramID := binary.BigEndian.Uint16(data[:2])
|
||||||
paramLen := int(binary.BigEndian.Uint16(data[2:4]))
|
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])
|
p.MaxUniStreams = binary.BigEndian.Uint16(data[:2])
|
||||||
case idleTimeoutParameterID:
|
case idleTimeoutParameterID:
|
||||||
foundIdleTimeout = true
|
|
||||||
if paramLen != 2 {
|
if paramLen != 2 {
|
||||||
return fmt.Errorf("wrong length for idle_timeout: %d (expected 2)", paramLen)
|
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 {
|
if len(data) != 0 {
|
||||||
return fmt.Errorf("should have read all data. Still have %d bytes", len(data))
|
return fmt.Errorf("should have read all data. Still have %d bytes", len(data))
|
||||||
}
|
}
|
||||||
if !foundIdleTimeout {
|
|
||||||
return errors.New("missing parameter")
|
|
||||||
}
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user