summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2025-04-05 02:11:19 +0200
committerJoakim Hulthe <joakim.hulthe@mullvad.net>2025-04-07 11:24:55 +0200
commita8463bf4524304ce1aa2f37e5829ac176842d3de (patch)
tree05b4608b838cbaa3da03a362d4d3fe463cfab123
parentd6696d5f403189f87b29838663269662bc477568 (diff)
downloadmullvadvpn-a8463bf4524304ce1aa2f37e5829ac176842d3de.tar.xz
mullvadvpn-a8463bf4524304ce1aa2f37e5829ac176842d3de.zip
Fix reassembly of incoming fragments in masque client
-rw-r--r--mullvad-masque-proxy/src/client/mod.rs25
1 files changed, 6 insertions, 19 deletions
diff --git a/mullvad-masque-proxy/src/client/mod.rs b/mullvad-masque-proxy/src/client/mod.rs
index 21c806c6cd..4fd7ee5729 100644
--- a/mullvad-masque-proxy/src/client/mod.rs
+++ b/mullvad-masque-proxy/src/client/mod.rs
@@ -246,25 +246,12 @@ impl Client {
// log::trace!("Received datagram with an unexpected stream ID");
continue;
}
- let mut payload = response.into_payload();
- let context = VarInt::decode(&mut payload);
- match context {
- Ok(crate::HTTP_MASQUE_DATAGRAM_CONTEXT_ID) => {
- self.client_socket
- .send_to(payload.as_ref(), return_addr)
- .await
- .map_err(Error::ClientWrite)?;
- }
- Ok(crate::HTTP_MASQUE_FRAGMENTED_DATAGRAM_CONTEXT_ID) => {
- if let Ok(Some(payload)) = self.fragments.handle_incoming_packet(payload) {
- self.client_socket
- .send_to(payload.chunk(), return_addr)
- .await
- .map_err(Error::ClientWrite)?;
- }
- },
- _ => (),
-
+ let payload = response.into_payload();
+ if let Ok(Some(payload)) = self.fragments.handle_incoming_packet(payload) {
+ self.client_socket
+ .send_to(payload.chunk(), return_addr)
+ .await
+ .map_err(Error::ClientWrite)?;
}
}
Ok(None) => {