diff options
author | Jake McGinty <me@jake.su> | 2018-01-27 18:37:38 -0800 |
---|---|---|
committer | Jake McGinty <me@jake.su> | 2018-01-27 18:37:42 -0800 |
commit | c7dc89128fc124b6fbe621e3f4d5f69292525242 (patch) | |
tree | b499342faa5f9ee40472fd4fd78beb0c18118d68 /src | |
parent | handle incoming handshake init packets (diff) | |
download | wireguard-rs-c7dc89128fc124b6fbe621e3f4d5f69292525242.tar.xz wireguard-rs-c7dc89128fc124b6fbe621e3f4d5f69292525242.zip |
ratchet session upon sending successful handshake response
TODO: handshake packet resending after lack of confirmation
Diffstat (limited to 'src')
-rw-r--r-- | src/interface/peer_server.rs | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/src/interface/peer_server.rs b/src/interface/peer_server.rs index b88235e..7b5f3ff 100644 --- a/src/interface/peer_server.rs +++ b/src/interface/peer_server.rs @@ -102,6 +102,7 @@ impl PeerServer { return; } + // TODO: hacked up API until it's officially supported in snow. let peer_ref = { let their_pubkey = match noise { snow::Session::Handshake(ref mut handshake_state) => { @@ -121,6 +122,7 @@ impl PeerServer { let mut peer = peer_ref.borrow_mut(); + // TODO: hacked up API until it's officially supported in snow. match noise { snow::Session::Handshake(ref mut handshake_state) => { handshake_state.set_psk(2, &peer.info.psk.expect("no psk!")); @@ -134,6 +136,7 @@ impl PeerServer { let response_packet = peer.get_response_packet(); self.handle.spawn(self.udp_tx.clone().send((addr.clone(), response_packet)).then(|_| Ok(()))); + peer.ratchet_session().unwrap(); info!("sent handshake response"); }, 2 => { |