forked from quic-go/quic-go
Merge pull request #2275 from lucas-clemente/fix-session-ticket-transport-parameter-unmarshal
fix unmarshaling of transport parameters from session tickets
This commit is contained in:
@@ -491,7 +491,13 @@ func (h *cryptoSetup) accept0RTT(sessionTicketData []byte) bool {
|
|||||||
h.logger.Debugf("Unmarshaling transport parameters from session ticket failed: %s", err.Error())
|
h.logger.Debugf("Unmarshaling transport parameters from session ticket failed: %s", err.Error())
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
return h.ourParams.ValidFor0RTT(&tp)
|
valid := h.ourParams.ValidFor0RTT(&tp)
|
||||||
|
if valid {
|
||||||
|
h.logger.Debugf("Accepting 0-RTT.")
|
||||||
|
} else {
|
||||||
|
h.logger.Debugf("Transport parameters changed. Rejecting 0-RTT.")
|
||||||
|
}
|
||||||
|
return valid
|
||||||
}
|
}
|
||||||
|
|
||||||
func (h *cryptoSetup) handlePostHandshakeMessage() {
|
func (h *cryptoSetup) handlePostHandshakeMessage() {
|
||||||
|
|||||||
@@ -413,8 +413,7 @@ func (p *TransportParameters) UnmarshalFromSessionTicket(data []byte) error {
|
|||||||
if version != transportParameterMarshalingVersion {
|
if version != transportParameterMarshalingVersion {
|
||||||
return fmt.Errorf("unknown transport parameter marshaling version: %d", version)
|
return fmt.Errorf("unknown transport parameter marshaling version: %d", version)
|
||||||
}
|
}
|
||||||
tp := &TransportParameters{}
|
return p.Unmarshal(data[len(data)-r.Len():], protocol.PerspectiveServer)
|
||||||
return tp.Unmarshal(data[len(data)-r.Len():], protocol.PerspectiveServer)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ValidFor0RTT checks if the transport parameters match those saved in the session ticket.
|
// ValidFor0RTT checks if the transport parameters match those saved in the session ticket.
|
||||||
|
|||||||
Reference in New Issue
Block a user