Rename STUN actor to autodiscovery actor
This commit is contained in:
parent
6147bb0b8c
commit
6614dfaeb6
5 changed files with 28 additions and 21 deletions
|
@ -5,7 +5,7 @@ use anyhow::{anyhow, bail, Result};
|
|||
use log::*;
|
||||
use serde::{Deserialize, Serialize};
|
||||
|
||||
use crate::config::{RuntimeConfigConsul, RuntimeConfigStun};
|
||||
use crate::config::{RuntimeConfigAutoDiscovery, RuntimeConfigConsul};
|
||||
use crate::consul;
|
||||
|
||||
/// If autodiscovery returns None but an address was obtained less than
|
||||
|
@ -13,7 +13,7 @@ use crate::consul;
|
|||
/// in the Consul db instead of insterting a None.
|
||||
const PERSIST_SOME_RESULT_DURATION_SECS: u64 = 900;
|
||||
|
||||
pub struct StunActor {
|
||||
pub struct AutoDiscoveryActor {
|
||||
consul: consul::Consul,
|
||||
refresh_time: Duration,
|
||||
|
||||
|
@ -39,22 +39,22 @@ pub struct AutodiscoverResult {
|
|||
pub address: Option<IpAddr>,
|
||||
}
|
||||
|
||||
impl StunActor {
|
||||
impl AutoDiscoveryActor {
|
||||
pub fn new(
|
||||
consul_config: &RuntimeConfigConsul,
|
||||
stun_config: &RuntimeConfigStun,
|
||||
autodiscovery_config: &RuntimeConfigAutoDiscovery,
|
||||
node: &str,
|
||||
) -> Self {
|
||||
assert!(stun_config
|
||||
assert!(autodiscovery_config
|
||||
.stun_server_v4
|
||||
.map(|x| x.is_ipv4())
|
||||
.unwrap_or(true));
|
||||
assert!(stun_config.stun_server_v6.is_ipv6());
|
||||
assert!(autodiscovery_config.stun_server_v6.is_ipv6());
|
||||
|
||||
let autodiscovery_v4 = StunAutodiscovery {
|
||||
consul_key: format!("diplonat/autodiscovery/ipv4/{}", node),
|
||||
is_ipv4: true,
|
||||
stun_server: stun_config.stun_server_v4,
|
||||
stun_server: autodiscovery_config.stun_server_v4,
|
||||
last_result: None,
|
||||
};
|
||||
|
||||
|
@ -67,7 +67,7 @@ impl StunActor {
|
|||
consul: consul::Consul::new(consul_config),
|
||||
autodiscovery_v4,
|
||||
autodiscovery_v6,
|
||||
refresh_time: stun_config.refresh_time,
|
||||
refresh_time: autodiscovery_config.refresh_time,
|
||||
}
|
||||
}
|
||||
|
|
@ -5,7 +5,8 @@ mod runtime;
|
|||
|
||||
pub use options::{ConfigOpts, ConfigOptsBase, ConfigOptsConsul};
|
||||
pub use runtime::{
|
||||
RuntimeConfig, RuntimeConfigConsul, RuntimeConfigFirewall, RuntimeConfigIgd, RuntimeConfigStun,
|
||||
RuntimeConfig, RuntimeConfigAutoDiscovery, RuntimeConfigConsul, RuntimeConfigFirewall,
|
||||
RuntimeConfigIgd,
|
||||
};
|
||||
|
||||
pub const EXPIRATION_TIME: u16 = 300;
|
||||
|
|
|
@ -33,7 +33,7 @@ pub struct RuntimeConfigIgd {
|
|||
}
|
||||
|
||||
#[derive(Debug)]
|
||||
pub struct RuntimeConfigStun {
|
||||
pub struct RuntimeConfigAutoDiscovery {
|
||||
pub stun_server_v4: Option<SocketAddr>,
|
||||
pub stun_server_v6: SocketAddr,
|
||||
pub refresh_time: Duration,
|
||||
|
@ -44,7 +44,7 @@ pub struct RuntimeConfig {
|
|||
pub consul: RuntimeConfigConsul,
|
||||
pub firewall: RuntimeConfigFirewall,
|
||||
pub igd: Option<RuntimeConfigIgd>,
|
||||
pub stun: RuntimeConfigStun,
|
||||
pub autodiscovery: RuntimeConfigAutoDiscovery,
|
||||
}
|
||||
|
||||
impl RuntimeConfig {
|
||||
|
@ -55,13 +55,13 @@ impl RuntimeConfig {
|
|||
false => Some(RuntimeConfigIgd::new(&opts.base)?),
|
||||
true => None,
|
||||
};
|
||||
let stun = RuntimeConfigStun::new(&opts.base)?;
|
||||
let autodiscovery = RuntimeConfigAutoDiscovery::new(&opts.base)?;
|
||||
|
||||
Ok(Self {
|
||||
consul,
|
||||
firewall,
|
||||
igd,
|
||||
stun,
|
||||
autodiscovery,
|
||||
})
|
||||
}
|
||||
}
|
||||
|
@ -153,7 +153,7 @@ impl RuntimeConfigIgd {
|
|||
}
|
||||
}
|
||||
|
||||
impl RuntimeConfigStun {
|
||||
impl RuntimeConfigAutoDiscovery {
|
||||
pub(super) fn new(opts: &ConfigOptsBase) -> Result<Self> {
|
||||
let mut stun_server_v4 = None;
|
||||
let mut stun_server_v6 = None;
|
||||
|
|
|
@ -3,15 +3,15 @@ use futures::future::FutureExt;
|
|||
use tokio::try_join;
|
||||
|
||||
use crate::{
|
||||
config::ConfigOpts, consul_actor::ConsulActor, fw_actor::FirewallActor, igd_actor::IgdActor,
|
||||
stun_actor::StunActor,
|
||||
autodiscovery_actor::AutoDiscoveryActor, config::ConfigOpts, consul_actor::ConsulActor,
|
||||
fw_actor::FirewallActor, igd_actor::IgdActor,
|
||||
};
|
||||
|
||||
pub struct Diplonat {
|
||||
consul: ConsulActor,
|
||||
firewall: FirewallActor,
|
||||
igd: Option<IgdActor>,
|
||||
stun: StunActor,
|
||||
autodiscovery: AutoDiscoveryActor,
|
||||
}
|
||||
|
||||
impl Diplonat {
|
||||
|
@ -43,13 +43,17 @@ impl Diplonat {
|
|||
None => None,
|
||||
};
|
||||
|
||||
let sa = StunActor::new(&rt_cfg.consul, &rt_cfg.stun, &rt_cfg.consul.node_name);
|
||||
let ad = AutoDiscoveryActor::new(
|
||||
&rt_cfg.consul,
|
||||
&rt_cfg.autodiscovery,
|
||||
&rt_cfg.consul.node_name,
|
||||
);
|
||||
|
||||
let ctx = Self {
|
||||
consul: ca,
|
||||
igd: ia,
|
||||
firewall: fw,
|
||||
stun: sa,
|
||||
autodiscovery: ad,
|
||||
};
|
||||
|
||||
Ok(ctx)
|
||||
|
@ -70,7 +74,9 @@ impl Diplonat {
|
|||
self.firewall
|
||||
.listen()
|
||||
.map(|x| x.context("Run firewall actor")),
|
||||
self.stun.listen().map(|x| x.context("Run STUN actor")),
|
||||
self.autodiscovery
|
||||
.listen()
|
||||
.map(|x| x.context("Run autodiscovery actor")),
|
||||
)?;
|
||||
|
||||
Ok(())
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
mod autodiscovery_actor;
|
||||
mod config;
|
||||
mod consul;
|
||||
mod consul_actor;
|
||||
|
@ -6,7 +7,6 @@ mod fw;
|
|||
mod fw_actor;
|
||||
mod igd_actor;
|
||||
mod messages;
|
||||
mod stun_actor;
|
||||
|
||||
use diplonat::Diplonat;
|
||||
use log::*;
|
||||
|
|
Loading…
Add table
Reference in a new issue