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

39 lines
1.2 KiB
Rust

use crate::cache::*;
use crate::crypto::*;
5 years ago
use crate::dnscrypt_certs::*;
use parking_lot::{Mutex, RwLock};
use siphasher::sip128::SipHasher13;
use std::collections::vec_deque::VecDeque;
5 years ago
use std::net::SocketAddr;
use std::path::PathBuf;
use std::sync::atomic::AtomicU32;
5 years ago
use std::sync::Arc;
5 years ago
use std::time::Duration;
5 years ago
use tokio::runtime::Runtime;
use tokio::sync::oneshot;
5 years ago
#[derive(Debug, Clone)]
5 years ago
pub struct Globals {
pub runtime: Arc<Runtime>,
pub state_file: PathBuf,
pub dnscrypt_encryption_params_set: Arc<RwLock<Arc<Vec<Arc<DNSCryptEncryptionParams>>>>>,
5 years ago
pub provider_name: String,
pub provider_kp: SignKeyPair,
5 years ago
pub listen_addrs: Vec<SocketAddr>,
5 years ago
pub external_addr: SocketAddr,
pub upstream_addr: SocketAddr,
5 years ago
pub tls_upstream_addr: Option<SocketAddr>,
5 years ago
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<VecDeque<oneshot::Sender<()>>>>,
pub tcp_active_connections: Arc<Mutex<VecDeque<oneshot::Sender<()>>>>,
pub key_cache_capacity: usize,
pub hasher: SipHasher13,
pub cache: Cache,
5 years ago
}