aboutsummaryrefslogtreecommitdiffstats
path: root/src/peer.rs
diff options
context:
space:
mode:
authorJake McGinty <me@jake.su>2018-05-08 18:33:27 -0700
committerJake McGinty <me@jake.su>2018-05-08 18:33:27 -0700
commitad499ed799df6fda78adad6a551f1efd0d89584e (patch)
tree1e279afd1e95175ff8d8727ffe48cdd1fbb7410e /src/peer.rs
parenttools: pass on exported env vars in wg-quick (diff)
downloadwireguard-rs-ad499ed799df6fda78adad6a551f1efd0d89584e.tar.xz
wireguard-rs-ad499ed799df6fda78adad6a551f1efd0d89584e.zip
peer: don't pad messages that don't need it
Diffstat (limited to 'src/peer.rs')
-rw-r--r--src/peer.rs4
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];