basic main loop [CI SKIP]

This commit is contained in:
Shimun 2019-03-30 14:28:30 +01:00
parent 9c5e14cd4e
commit 90f9d4cd36

View File

@ -6,9 +6,30 @@ extern crate derive_builder;
mod controller; mod controller;
mod model; mod model;
mod opts;
use controller::Userspace; use controller::{Userspace};
use model::WireguardController;
use opts::Opts;
use std::io;
use structopt::StructOpt;
use std::thread::sleep;
use std::time::{Duration,Instant};
fn main() { fn main() -> io::Result<()> {
let controller = Userspace::new(""); let opts = Opts::from_args();
let mut controller: Box<WireguardController> = Box::new(Userspace::new(opts.socket.clone()));
let interval = Duration::from_millis(opts.poll);
println!("Polling {} every {:?}", opts.socket.to_str().unwrap(), interval);
loop {
let now = Instant::now();
let peers = controller.peers()?;
for peer in peers {
dbg!(peer?);
}
let pause = interval - now.elapsed();
dbg!(pause);
sleep(if pause > interval/2 { pause } else {interval});
}
Ok(())
} }