expand error InvalidUdpSession
info
This commit is contained in:
parent
0bfa9e84bd
commit
6e91fc99f1
@ -177,9 +177,10 @@ impl Connection<side::Client> {
|
|||||||
Header::Connect(_) => Err(Error::BadCommandUniStream("connect", recv)),
|
Header::Connect(_) => Err(Error::BadCommandUniStream("connect", recv)),
|
||||||
Header::Packet(pkt) => {
|
Header::Packet(pkt) => {
|
||||||
let assoc_id = pkt.assoc_id();
|
let assoc_id = pkt.assoc_id();
|
||||||
|
let pkt_id = pkt.pkt_id();
|
||||||
self.model
|
self.model
|
||||||
.recv_packet(pkt)
|
.recv_packet(pkt)
|
||||||
.map_or(Err(Error::InvalidUdpSession(assoc_id)), |pkt| {
|
.map_or(Err(Error::InvalidUdpSession(assoc_id, pkt_id)), |pkt| {
|
||||||
Ok(Task::Packet(Packet::new(pkt, PacketSource::Quic(recv))))
|
Ok(Task::Packet(Packet::new(pkt, PacketSource::Quic(recv))))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -230,6 +231,7 @@ impl Connection<side::Client> {
|
|||||||
Header::Connect(_) => Err(Error::BadCommandDatagram("connect", dg.into_inner())),
|
Header::Connect(_) => Err(Error::BadCommandDatagram("connect", dg.into_inner())),
|
||||||
Header::Packet(pkt) => {
|
Header::Packet(pkt) => {
|
||||||
let assoc_id = pkt.assoc_id();
|
let assoc_id = pkt.assoc_id();
|
||||||
|
let pkt_id = pkt.pkt_id();
|
||||||
if let Some(pkt) = self.model.recv_packet(pkt) {
|
if let Some(pkt) = self.model.recv_packet(pkt) {
|
||||||
let pos = dg.position() as usize;
|
let pos = dg.position() as usize;
|
||||||
let mut buf = dg.into_inner();
|
let mut buf = dg.into_inner();
|
||||||
@ -240,7 +242,7 @@ impl Connection<side::Client> {
|
|||||||
Err(Error::PayloadLength(pkt.size() as usize, buf.len() - pos))
|
Err(Error::PayloadLength(pkt.size() as usize, buf.len() - pos))
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
Err(Error::InvalidUdpSession(assoc_id))
|
Err(Error::InvalidUdpSession(assoc_id, pkt_id))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Header::Dissociate(_) => Err(Error::BadCommandDatagram("dissociate", dg.into_inner())),
|
Header::Dissociate(_) => Err(Error::BadCommandDatagram("dissociate", dg.into_inner())),
|
||||||
@ -571,8 +573,8 @@ pub enum Error {
|
|||||||
SendDatagram(#[from] SendDatagramError),
|
SendDatagram(#[from] SendDatagramError),
|
||||||
#[error("expecting payload length {0} but got {1}")]
|
#[error("expecting payload length {0} but got {1}")]
|
||||||
PayloadLength(usize, usize),
|
PayloadLength(usize, usize),
|
||||||
#[error("invalid udp session {0}")]
|
#[error("packet {1:#06x} on invalid udp session {0:#06x}")]
|
||||||
InvalidUdpSession(u16),
|
InvalidUdpSession(u16, u16),
|
||||||
#[error(transparent)]
|
#[error(transparent)]
|
||||||
Assemble(#[from] AssembleError),
|
Assemble(#[from] AssembleError),
|
||||||
#[error("error unmarshaling uni_stream: {0}")]
|
#[error("error unmarshaling uni_stream: {0}")]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user