diff options
| author | David Lönnhager <david.l@mullvad.net> | 2025-04-05 02:11:19 +0200 |
|---|---|---|
| committer | Joakim Hulthe <joakim.hulthe@mullvad.net> | 2025-04-07 11:24:55 +0200 |
| commit | a8463bf4524304ce1aa2f37e5829ac176842d3de (patch) | |
| tree | 05b4608b838cbaa3da03a362d4d3fe463cfab123 | |
| parent | d6696d5f403189f87b29838663269662bc477568 (diff) | |
| download | mullvadvpn-a8463bf4524304ce1aa2f37e5829ac176842d3de.tar.xz mullvadvpn-a8463bf4524304ce1aa2f37e5829ac176842d3de.zip | |
Fix reassembly of incoming fragments in masque client
| -rw-r--r-- | mullvad-masque-proxy/src/client/mod.rs | 25 |
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) => { |
