diff options
Diffstat (limited to 'src/diplonat.rs')
-rw-r--r-- | src/diplonat.rs | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/diplonat.rs b/src/diplonat.rs index 3dd4e91..9062dd7 100644 --- a/src/diplonat.rs +++ b/src/diplonat.rs @@ -1,4 +1,5 @@ use anyhow::{Result, Context}; +use tokio::try_join; use crate::*; pub struct Diplonat { @@ -16,7 +17,29 @@ impl Diplonat { return Ok(ctx); } - pub fn listen(&self) -> bool { - return true; + // Action sinks + pub async fn consul_catalog(&self) -> Result<()> { + info!("Consul catalog loop started"); + return Ok(()); + } + pub async fn control_loop(&self) -> Result<()> { + info!("Control loop started"); + return Ok(()); + } + + // Action taps + pub async fn igd(&self) -> Result<()> { + info!("IGD loop started"); + return Ok(()); + } + // @TODO: implement netfilter, dns + + pub async fn listen(&self) -> Result<()> { + try_join!( + self.consul_catalog(), + self.control_loop(), + self.igd() + )?; + return Ok(()); } } |