You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
encrypted-dns-server/src/globals.rs

59 lines
1.9 KiB
Rust

use std::net::{IpAddr, SocketAddr};
use std::path::PathBuf;
use std::sync::atomic::AtomicU32;
use std::sync::Arc;
use std::time::Duration;
use parking_lot::{Mutex, RwLock};
use siphasher::sip128::SipHasher13;
use slabigator::Slab;
use tokio::runtime::Handle;
use tokio::sync::oneshot;
use crate::blacklist::*;
use crate::cache::*;
use crate::crypto::*;
use crate::dnscrypt_certs::*;
#[cfg(feature = "metrics")]
use crate::varz::*;
#[derive(Clone, Derivative)]
#[derivative(Debug)]
pub struct Globals {
pub runtime_handle: Handle,
pub state_file: PathBuf,
pub dnscrypt_encryption_params_set: Arc<RwLock<Arc<Vec<Arc<DNSCryptEncryptionParams>>>>>,
pub provider_name: String,
pub provider_kp: SignKeyPair,
pub listen_addrs: Vec<SocketAddr>,
pub external_addr: Option<SocketAddr>,
pub upstream_addr: SocketAddr,
pub tls_upstream_addr: Option<SocketAddr>,
pub udp_timeout: Duration,
pub tcp_timeout: Duration,
pub udp_concurrent_connections: Arc<AtomicU32>,
pub tcp_concurrent_connections: Arc<AtomicU32>,
pub udp_max_active_connections: u32,
pub tcp_max_active_connections: u32,
pub udp_active_connections: Arc<Mutex<Slab<oneshot::Sender<()>>>>,
pub tcp_active_connections: Arc<Mutex<Slab<oneshot::Sender<()>>>>,
pub key_cache_capacity: usize,
pub hasher: SipHasher13,
pub cache: Cache,
pub cert_cache: Cache,
pub blacklist: Option<BlackList>,
pub undelegated_list: Option<BlackList>,
pub ignore_unqualified_hostnames: bool,
pub dnscrypt_enabled: bool,
pub anonymized_dns_enabled: bool,
pub anonymized_dns_allowed_ports: Vec<u16>,
pub anonymized_dns_allow_non_reserved_ports: bool,
pub anonymized_dns_blacklisted_ips: Vec<IpAddr>,
pub access_control_tokens: Option<Vec<String>>,
pub client_ttl_holdon: u32,
pub my_ip: Option<Vec<u8>>,
#[cfg(feature = "metrics")]
#[derivative(Debug = "ignore")]
pub varz: Varz,
}