diff options
author | Jake McGinty <me@jake.su> | 2018-04-09 21:30:25 -0700 |
---|---|---|
committer | Jake McGinty <me@jake.su> | 2018-04-09 21:30:25 -0700 |
commit | 492d320e4930171130d2eebab666e1fbda4a7cf9 (patch) | |
tree | 4c98ec97ee6aed5823d1667827541b4785108bba /src/peer.rs | |
parent | meta: cargo update (diff) | |
download | wireguard-rs-492d320e4930171130d2eebab666e1fbda4a7cf9.tar.xz wireguard-rs-492d320e4930171130d2eebab666e1fbda4a7cf9.zip |
peer: update endpoint on handshake response messages too
Diffstat (limited to 'src/peer.rs')
-rw-r--r-- | src/peer.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/peer.rs b/src/peer.rs index 2331a09..9aaf422 100644 --- a/src/peer.rs +++ b/src/peer.rs @@ -312,13 +312,14 @@ impl Peer { self.cookie.consume_reply(reply) } - pub fn process_incoming_handshake_response(&mut self, packet: &Response) -> Result<Option<u32>, Error> { + pub fn process_incoming_handshake_response(&mut self, addr: SocketAddr, packet: &Response) -> Result<Option<u32>, Error> { let mut session = mem::replace(&mut self.sessions.next, None).ok_or_else(|| err_msg("no next session"))?; let _ = session.noise.read_message(packet.noise_bytes(), &mut [])?; session = session.into_transport_mode()?; session.their_index = packet.their_index(); session.birthday = Timestamp::now(); self.last_handshake = Timestamp::now(); + self.info.endpoint = Some(addr); let current = mem::replace(&mut self.sessions.current, Some(session)); let dead = mem::replace(&mut self.sessions.past, current); |