improved timeout detection [CI SKIP]

This commit is contained in:
shimunn 2019-04-03 16:57:49 +02:00
parent a64fa75170
commit e7999b0951
4 changed files with 17 additions and 5 deletions

View File

@ -1,3 +1,5 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "ansi_term"
version = "0.11.0"

View File

@ -34,6 +34,7 @@ impl WireguardController for Userspace {
let mut peer: Option<Peer> = None;
let build_peer = |peer: &mut Option<Peer>, builder: &mut PeerBuilder| -> Result<()> {
if builder.has_key() {
//Threat as uninitialized otherwise
let built: Result<Peer> = parse_err(builder.build());
*peer = Some(built?);
*builder = PeerBuilder::default();

View File

@ -19,7 +19,7 @@ use opts::Opts;
use std::collections::HashMap;
use std::io;
use std::thread::sleep;
use std::time::{Duration, Instant};
use std::time::{Duration, SystemTime,Instant, UNIX_EPOCH};
use structopt::StructOpt;
fn listeners(opts: &Opts) -> Vec<Box<EventListener>> {
@ -46,6 +46,7 @@ fn main() -> io::Result<()> {
interval
);
let mut peers_last: Option<HashMap<ECCKey, Peer>> = None;
let start = SystemTime::now();
loop {
let now = Instant::now();
let peers = controller.peers()?;
@ -63,8 +64,16 @@ fn main() -> io::Result<()> {
let peers = peers
.map(|peer| peer.map(|peer_ok| (peer_ok.key.clone(), peer_ok)))
.collect::<io::Result<HashMap<_, _>>>()?;
for (k, p) in peers.iter() {
if let Some(shake) = p.last_handshake {
println!(
"{} {:?}",
k.to_string()[0..5].to_string(),
shake.duration_since(start).unwrap()
);
}
}
if let Some(ref mut peers_last) = peers_last {
gen_events(&peers, &peers_last, &listeners, timeout, interval);
*peers_last = peers;

View File

@ -1 +1 @@
cargo build --release && cat target/release/wg-event-gen | ssh core@ks1 "sudo bash -c 'cat > /srv/vpn/wireguard/event-gen'"
cargo +nightly build && cat target/release/wg-event-gen | ssh core@ks1 "sudo bash -c 'rm -f /srv/vpn/wireguard/event-gen; cat > /srv/vpn/wireguard/event-gen; chmod +x /srv/vpn/wireguard/event-gen'"