diff options
Diffstat (limited to 'src/consul_actor.rs')
-rw-r--r-- | src/consul_actor.rs | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/src/consul_actor.rs b/src/consul_actor.rs index ba5d704..dcbd79e 100644 --- a/src/consul_actor.rs +++ b/src/consul_actor.rs @@ -1,14 +1,17 @@ use std::cmp; +use std::collections::HashSet; use std::time::Duration; -use log::*; -use tokio::sync::watch; -use tokio::time::delay_for; + use anyhow::Result; +use log::*; use serde::{Serialize, Deserialize}; use serde_lexpr::{from_str,error}; -use crate::messages; +use tokio::sync::watch; +use tokio::time::delay_for; + +use crate::config::RuntimeConfigConsul; use crate::consul; -use std::collections::HashSet; +use crate::messages; #[derive(Serialize, Deserialize, Debug)] pub enum DiplonatParameter { @@ -27,6 +30,7 @@ pub struct ConsulActor { consul: consul::Consul, node: String, retries: u32, + tx_open_ports: watch::Sender<messages::PublicExposedPorts> } @@ -72,18 +76,18 @@ fn to_open_ports(params: &Vec<DiplonatConsul>) -> messages::PublicExposedPorts { } impl ConsulActor { - pub fn new(url: &str, node: &str) -> Self { + pub fn new(config: RuntimeConfigConsul) -> Self { let (tx, rx) = watch::channel(messages::PublicExposedPorts{ tcp_ports: HashSet::new(), udp_ports: HashSet::new() }); return Self { - consul: consul::Consul::new(url), + consul: consul::Consul::new(&config.url), + node: config.node_name, + retries: 0, rx_open_ports: rx, tx_open_ports: tx, - node: node.to_string(), - retries: 0, }; } |