c.logger.Infof("Starting new connection to %s (%s -> %s), source connection ID %s, destination connection ID %s, version %s",c.hostname,c.conn.LocalAddr(),c.conn.RemoteAddr(),c.srcConnID,c.destConnID,c.version)
c.logger.Infof("Starting new connection to %s (%s -> %s), source connection ID %s, destination connection ID %s, version %s",c.tlsConf.ServerName,c.conn.LocalAddr(),c.conn.RemoteAddr(),c.srcConnID,c.destConnID,c.version)
c.logger.Debugf("Received a Retry with a too short Original Destination Connection ID: %d bytes, must have at least %d bytes.",hdr.OrigDestConnectionID.Len(),protocol.MinConnectionIDLenInitial)
return
return
}
}
if!hdr.OrigDestConnectionID.Equal(c.destConnID){
ifhdr.SrcConnectionID.Equal(c.destConnID){
c.logger.Debugf("Received spoofed Retry. Original Destination Connection ID: %s, expected: %s",hdr.OrigDestConnectionID,c.destConnID)
c.logger.Debugf("Ignoring Retry, since the server didn't change the Source Connection ID.")
return
return
}
}
c.numRetries++
// If a token is already set, this means that we already received a Retry from the server.
ifc.numRetries>protocol.MaxRetries{
// Ignore this Retry packet.
c.session.destroy(qerr.CryptoTooManyRejects)
iflen(c.token)>0{
c.logger.Debugf("Ignoring Retry, since a Retry was already received.")
// the other controlFrames are sent in the next packet, but might be queued and sent in the next packet if the packet would overflow MaxPacketSize otherwise
// the other controlFrames are sent in the next packet, but might be queued and sent in the next packet if the packet would overflow MaxPacketSize otherwise
// the other controlFrames are sent in the next packet, but might be queued and sent in the next packet if the packet would overflow MaxPacketSize otherwise