diff options
author | Jake McGinty <me@jake.su> | 2018-05-08 18:33:27 -0700 |
---|---|---|
committer | Jake McGinty <me@jake.su> | 2018-05-08 18:33:27 -0700 |
commit | ad499ed799df6fda78adad6a551f1efd0d89584e (patch) | |
tree | 1e279afd1e95175ff8d8727ffe48cdd1fbb7410e /src | |
parent | tools: pass on exported env vars in wg-quick (diff) | |
download | wireguard-rs-ad499ed799df6fda78adad6a551f1efd0d89584e.tar.xz wireguard-rs-ad499ed799df6fda78adad6a551f1efd0d89584e.zip |
peer: don't pad messages that don't need it
Diffstat (limited to 'src')
-rw-r--r-- | src/peer.rs | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/peer.rs b/src/peer.rs index 977c192..8a022d4 100644 --- a/src/peer.rs +++ b/src/peer.rs @@ -386,7 +386,9 @@ impl Peer { pub fn handle_outgoing_transport(&mut self, packet: &[u8]) -> Result<(Endpoint, Vec<u8>), Error> { let session = self.sessions.current.as_mut().ok_or_else(|| err_msg("no current noise session"))?; let endpoint = self.info.endpoint.ok_or_else(|| err_msg("no known peer endpoint"))?; - let padding = PADDING_MULTIPLE - (packet.len() % PADDING_MULTIPLE); + let padding = if packet.len() % PADDING_MULTIPLE != 0 { + PADDING_MULTIPLE - (packet.len() % PADDING_MULTIPLE) + } else { 0 }; let padded_len = packet.len() + padding; let mut out_packet = vec![0u8; padded_len + TRANSPORT_OVERHEAD]; |