mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-06-08 21:43:44 +02:00
Get things building again
This commit is contained in:
parent
b4c74ce7bb
commit
0552d587a0
4 changed files with 11 additions and 68 deletions
|
@ -2,9 +2,8 @@
|
||||||
|
|
||||||
mod multicastgroup;
|
mod multicastgroup;
|
||||||
mod networkid;
|
mod networkid;
|
||||||
|
mod switch;
|
||||||
pub(crate) mod switch;
|
|
||||||
|
|
||||||
pub use multicastgroup::MulticastGroup;
|
pub use multicastgroup::MulticastGroup;
|
||||||
pub use networkid::NetworkId;
|
pub use networkid::NetworkId;
|
||||||
pub use switch::SwitchInterface;
|
pub use switch::{Switch, SwitchInterface};
|
||||||
|
|
|
@ -6,6 +6,7 @@ use serde::{Deserialize, Serialize};
|
||||||
|
|
||||||
use zerotier_network_hypervisor::vl1::{Address, Endpoint, InetAddress};
|
use zerotier_network_hypervisor::vl1::{Address, Endpoint, InetAddress};
|
||||||
use zerotier_network_hypervisor::vl2::NetworkId;
|
use zerotier_network_hypervisor::vl2::NetworkId;
|
||||||
|
use zerotier_vl1_service::Settings;
|
||||||
|
|
||||||
/// Default primary ZeroTier port.
|
/// Default primary ZeroTier port.
|
||||||
pub const DEFAULT_PORT: u16 = 9993;
|
pub const DEFAULT_PORT: u16 = 9993;
|
||||||
|
@ -62,63 +63,6 @@ impl Default for NetworkSettings {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq)]
|
|
||||||
#[serde(default)]
|
|
||||||
pub struct GlobalSettings {
|
|
||||||
/// Primary ZeroTier port that is always bound, default is 9993.
|
|
||||||
#[serde(rename = "primaryPort")]
|
|
||||||
pub primary_port: u16,
|
|
||||||
|
|
||||||
/// Enable uPnP, NAT-PMP, and other router port mapping technologies?
|
|
||||||
#[serde(rename = "portMapping")]
|
|
||||||
pub port_mapping: bool,
|
|
||||||
|
|
||||||
/// Interface name prefix blacklist for local bindings (not remote IPs).
|
|
||||||
#[serde(rename = "interfacePrefixBlacklist")]
|
|
||||||
pub interface_prefix_blacklist: Vec<String>,
|
|
||||||
|
|
||||||
/// IP/bits CIDR blacklist for local bindings (not remote IPs).
|
|
||||||
#[serde(rename = "cidrBlacklist")]
|
|
||||||
pub cidr_blacklist: Vec<InetAddress>,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Default for GlobalSettings {
|
|
||||||
fn default() -> Self {
|
|
||||||
let mut bl: Vec<String> = Vec::new();
|
|
||||||
bl.reserve(Self::DEFAULT_PREFIX_BLACKLIST.len());
|
|
||||||
for n in Self::DEFAULT_PREFIX_BLACKLIST.iter() {
|
|
||||||
bl.push(String::from(*n));
|
|
||||||
}
|
|
||||||
|
|
||||||
Self {
|
|
||||||
primary_port: DEFAULT_PORT,
|
|
||||||
port_mapping: true,
|
|
||||||
interface_prefix_blacklist: bl,
|
|
||||||
cidr_blacklist: Vec::new(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl GlobalSettings {
|
|
||||||
#[cfg(target_os = "macos")]
|
|
||||||
pub const DEFAULT_PREFIX_BLACKLIST: [&'static str; 10] = ["lo", "utun", "gif", "stf", "iptap", "pktap", "feth", "zt", "llw", "anpi"];
|
|
||||||
|
|
||||||
#[cfg(target_os = "linux")]
|
|
||||||
pub const DEFAULT_PREFIX_BLACKLIST: [&'static str; 5] = ["lo", "tun", "tap", "ipsec", "zt"];
|
|
||||||
|
|
||||||
#[cfg(windows)]
|
|
||||||
pub const DEFAULT_PREFIX_BLACKLIST: [&'static str; 0] = [];
|
|
||||||
|
|
||||||
pub fn is_interface_blacklisted(&self, ifname: &str) -> bool {
|
|
||||||
for p in self.interface_prefix_blacklist.iter() {
|
|
||||||
if ifname.starts_with(p.as_str()) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq)]
|
#[derive(Serialize, Deserialize, Clone, PartialEq, Eq)]
|
||||||
#[serde(default)]
|
#[serde(default)]
|
||||||
pub struct Config {
|
pub struct Config {
|
||||||
|
@ -126,7 +70,7 @@ pub struct Config {
|
||||||
#[serde(rename = "virtual")]
|
#[serde(rename = "virtual")]
|
||||||
pub virtual_: BTreeMap<Address, VirtualPathSettings>,
|
pub virtual_: BTreeMap<Address, VirtualPathSettings>,
|
||||||
pub network: BTreeMap<NetworkId, NetworkSettings>,
|
pub network: BTreeMap<NetworkId, NetworkSettings>,
|
||||||
pub settings: GlobalSettings,
|
pub settings: Settings,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Default for Config {
|
impl Default for Config {
|
||||||
|
@ -135,7 +79,7 @@ impl Default for Config {
|
||||||
physical: BTreeMap::new(),
|
physical: BTreeMap::new(),
|
||||||
virtual_: BTreeMap::new(),
|
virtual_: BTreeMap::new(),
|
||||||
network: BTreeMap::new(),
|
network: BTreeMap::new(),
|
||||||
settings: GlobalSettings::default(),
|
settings: Settings::default(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,14 +4,8 @@ pub mod cli;
|
||||||
pub mod cmdline_help;
|
pub mod cmdline_help;
|
||||||
pub mod datadir;
|
pub mod datadir;
|
||||||
pub mod exitcode;
|
pub mod exitcode;
|
||||||
pub mod getifaddrs;
|
|
||||||
pub mod ipv6;
|
|
||||||
pub mod jsonformatter;
|
pub mod jsonformatter;
|
||||||
pub mod localconfig;
|
pub mod localconfig;
|
||||||
pub mod localinterface;
|
|
||||||
pub mod localsocket;
|
|
||||||
pub mod service;
|
|
||||||
pub mod udp;
|
|
||||||
pub mod utils;
|
pub mod utils;
|
||||||
pub mod vnic;
|
pub mod vnic;
|
||||||
|
|
||||||
|
@ -20,6 +14,7 @@ use std::io::Write;
|
||||||
use clap::error::{ContextKind, ContextValue};
|
use clap::error::{ContextKind, ContextValue};
|
||||||
use clap::{Arg, ArgMatches, Command};
|
use clap::{Arg, ArgMatches, Command};
|
||||||
|
|
||||||
|
use zerotier_network_hypervisor::vl2::Switch;
|
||||||
use zerotier_network_hypervisor::{VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION};
|
use zerotier_network_hypervisor::{VERSION_MAJOR, VERSION_MINOR, VERSION_REVISION};
|
||||||
|
|
||||||
pub fn print_help() {
|
pub fn print_help() {
|
||||||
|
@ -63,6 +58,8 @@ async fn async_main(flags: Flags, global_args: Box<ArgMatches>) -> i32 {
|
||||||
Some(("leave", cmd_args)) => todo!(),
|
Some(("leave", cmd_args)) => todo!(),
|
||||||
Some(("service", _)) => {
|
Some(("service", _)) => {
|
||||||
drop(global_args); // free unnecessary heap before starting service as we're done with CLI args
|
drop(global_args); // free unnecessary heap before starting service as we're done with CLI args
|
||||||
|
|
||||||
|
/*
|
||||||
let svc = service::Service::new(tokio::runtime::Handle::current(), &flags.base_path, true).await;
|
let svc = service::Service::new(tokio::runtime::Handle::current(), &flags.base_path, true).await;
|
||||||
if svc.is_ok() {
|
if svc.is_ok() {
|
||||||
let _ = tokio::signal::ctrl_c().await;
|
let _ = tokio::signal::ctrl_c().await;
|
||||||
|
@ -72,6 +69,8 @@ async fn async_main(flags: Flags, global_args: Box<ArgMatches>) -> i32 {
|
||||||
println!("FATAL: error launching service: {}", svc.err().unwrap().to_string());
|
println!("FATAL: error launching service: {}", svc.err().unwrap().to_string());
|
||||||
exitcode::ERR_IOERR
|
exitcode::ERR_IOERR
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
|
todo!()
|
||||||
}
|
}
|
||||||
Some(("identity", cmd_args)) => todo!(),
|
Some(("identity", cmd_args)) => todo!(),
|
||||||
Some(("rootset", cmd_args)) => cli::rootset::cmd(flags, cmd_args).await,
|
Some(("rootset", cmd_args)) => cli::rootset::cmd(flags, cmd_args).await,
|
||||||
|
|
|
@ -163,6 +163,7 @@ impl BoundUdpPort {
|
||||||
address: addr_with_port,
|
address: addr_with_port,
|
||||||
socket: Arc::new(s.unwrap()),
|
socket: Arc::new(s.unwrap()),
|
||||||
interface: interface.clone(),
|
interface: interface.clone(),
|
||||||
|
associated_tasks: parking_lot::Mutex::new(Vec::new()),
|
||||||
last_receive_time: AtomicI64::new(i64::MIN),
|
last_receive_time: AtomicI64::new(i64::MIN),
|
||||||
fd,
|
fd,
|
||||||
});
|
});
|
||||||
|
|
Loading…
Add table
Reference in a new issue