Skip to content

Commit ddb88ac

Browse files
authored
fix: Bubble up errors from Crypto::confirm_version (#2511)
I don't think they should have been suppressed.
1 parent 00bf2fb commit ddb88ac

File tree

2 files changed

+8
-6
lines changed

2 files changed

+8
-6
lines changed

neqo-transport/src/connection/mod.rs

+5-4
Original file line numberDiff line numberDiff line change
@@ -2833,12 +2833,13 @@ impl Connection {
28332833
}
28342834
}
28352835

2836-
fn confirm_version(&mut self, v: Version) {
2836+
fn confirm_version(&mut self, v: Version) -> Res<()> {
28372837
if self.version != v {
28382838
qdebug!("[{self}] Compatible upgrade {:?} ==> {v:?}", self.version);
28392839
}
2840-
self.crypto.confirm_version(v);
2840+
self.crypto.confirm_version(v)?;
28412841
self.version = v;
2842+
Ok(())
28422843
}
28432844

28442845
fn compatible_upgrade(&mut self, packet_version: Version) -> Res<()> {
@@ -2847,15 +2848,15 @@ impl Connection {
28472848
}
28482849

28492850
if self.role == Role::Client {
2850-
self.confirm_version(packet_version);
2851+
self.confirm_version(packet_version)?;
28512852
} else if self.tps.borrow().remote.is_some() {
28522853
let version = self.tps.borrow().version();
28532854
let dcid = self
28542855
.original_destination_cid
28552856
.as_ref()
28562857
.ok_or(Error::ProtocolViolation)?;
28572858
self.crypto.states.init_server(version, dcid)?;
2858-
self.confirm_version(version);
2859+
self.confirm_version(version)?;
28592860
}
28602861
Ok(())
28612862
}

neqo-transport/src/crypto.rs

+3-2
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,10 @@ impl Crypto {
242242
}
243243

244244
/// Lock in a compatible upgrade.
245-
pub fn confirm_version(&mut self, confirmed: Version) {
246-
_ = self.states.confirm_version(self.version, confirmed);
245+
pub fn confirm_version(&mut self, confirmed: Version) -> Res<()> {
246+
self.states.confirm_version(self.version, confirmed)?;
247247
self.version = confirmed;
248+
Ok(())
248249
}
249250

250251
/// Returns true if new handshake keys were installed.

0 commit comments

Comments
 (0)