quinn-proto: move PacketBuilder into a separate module

This commit is contained in:
Dirkjan Ochtman
2021-02-24 11:37:43 +01:00
committed by Benjamin Saunders
parent 6bddfdea1a
commit e1df56f40c
2 changed files with 27 additions and 22 deletions
+5 -22
View File
@@ -23,7 +23,7 @@ use crate::{
frame,
frame::{Close, Datagram, FrameStruct},
is_supported_version,
packet::{Header, LongType, Packet, PacketNumber, PartialDecode, PartialEncode, SpaceId},
packet::{Header, LongType, Packet, PacketNumber, PartialDecode, SpaceId},
range_set::RangeSet,
shared::{
ConnectionEvent, ConnectionEventInner, ConnectionId, EcnCodepoint, EndpointEvent,
@@ -41,6 +41,10 @@ mod cid_state;
use cid_state::CidState;
mod pacing;
mod packet_builder;
use packet_builder::PacketBuilder;
mod paths;
use paths::PathData;
@@ -3588,27 +3592,6 @@ struct SentFrames {
requires_padding: bool,
}
struct PacketBuilder {
datagram_start: usize,
space: SpaceId,
partial_encode: PartialEncode,
ack_eliciting: bool,
exact_number: u64,
short_header: bool,
min_size: usize,
max_size: usize,
tag_len: usize,
span: tracing::Span,
}
impl PacketBuilder {
fn pad_to(&mut self, min_size: u16) {
let prev = self.min_size;
self.min_size = self.datagram_start + (min_size as usize) - self.tag_len;
debug_assert!(self.min_size >= prev, "padding must not shrink datagram");
}
}
/// Perform key updates this many packets before the AEAD confidentiality limit.
///
/// Chosen arbitrarily, intended to be large enough to prevent spurious connection loss.
@@ -0,0 +1,22 @@
use crate::packet::{PartialEncode, SpaceId};
pub(super) struct PacketBuilder {
pub datagram_start: usize,
pub space: SpaceId,
pub partial_encode: PartialEncode,
pub ack_eliciting: bool,
pub exact_number: u64,
pub short_header: bool,
pub min_size: usize,
pub max_size: usize,
pub tag_len: usize,
pub span: tracing::Span,
}
impl PacketBuilder {
pub fn pad_to(&mut self, min_size: u16) {
let prev = self.min_size;
self.min_size = self.datagram_start + (min_size as usize) - self.tag_len;
debug_assert!(self.min_size >= prev, "padding must not shrink datagram");
}
}