mirror of
https://github.com/EasyTier/EasyTier.git
synced 2026-05-07 10:14:35 +00:00
refactor(config): unify runtime configuration management via ConfigRpc (#1397)
* refactor(config): unify runtime configuration management via ConfigRpc * feat(tests): add config patch test and fix problem
This commit is contained in:
@@ -152,6 +152,7 @@ pub trait ConfigLoader: Send + Sync {
|
||||
mapped_cidr: Option<cidr::Ipv4Cidr>,
|
||||
) -> Result<(), anyhow::Error>;
|
||||
fn remove_proxy_cidr(&self, cidr: cidr::Ipv4Cidr);
|
||||
fn clear_proxy_cidrs(&self);
|
||||
fn get_proxy_cidrs(&self) -> Vec<ProxyNetworkConfig>;
|
||||
|
||||
fn get_network_identity(&self) -> NetworkIdentity;
|
||||
@@ -610,6 +611,11 @@ impl ConfigLoader for TomlConfigLoader {
|
||||
}
|
||||
}
|
||||
|
||||
fn clear_proxy_cidrs(&self) {
|
||||
let mut locked_config = self.config.lock().unwrap();
|
||||
locked_config.proxy_network = None;
|
||||
}
|
||||
|
||||
fn get_proxy_cidrs(&self) -> Vec<ProxyNetworkConfig> {
|
||||
self.config
|
||||
.lock()
|
||||
|
||||
@@ -12,6 +12,7 @@ use crate::peers::acl_filter::AclFilter;
|
||||
use crate::proto::acl::GroupIdentity;
|
||||
use crate::proto::cli::PeerConnInfo;
|
||||
use crate::proto::common::{PeerFeatureFlag, PortForwardConfigPb};
|
||||
use crate::proto::config::InstanceConfigPatch;
|
||||
use crate::proto::peer_rpc::PeerGroupInfo;
|
||||
use crossbeam::atomic::AtomicCell;
|
||||
|
||||
@@ -52,6 +53,8 @@ pub enum GlobalCtxEvent {
|
||||
DhcpIpv4Conflicted(Option<cidr::Ipv4Inet>),
|
||||
|
||||
PortForwardAdded(PortForwardConfigPb),
|
||||
|
||||
ConfigPatched(InstanceConfigPatch),
|
||||
}
|
||||
|
||||
pub type EventBus = tokio::sync::broadcast::Sender<GlobalCtxEvent>;
|
||||
|
||||
Reference in New Issue
Block a user