use crate::errors::ProxyError;
mod branch_chain;
pub use branch_chain::{
MAX_BRANCH_DEPTH, MAX_ITERATIONS_CEILING, count_build_branches, validate_chain_entries_branch_chains,
};
pub(in crate::config) mod cluster;
mod filter_chain;
mod inline_clusters;
mod listener;
mod rules;
pub use cluster::is_ssrf_sensitive;
pub use filter_chain::{TERMINAL_FILTERS, validate_chain_entries_cardinality, validate_chain_entries_conditions};
pub use inline_clusters::validate_chain_entries_inline_clusters;
pub(crate) const MAX_CONNECTIONS: u32 = 1_000_000;
pub(crate) fn validate_name_chars(name: &str, kind: &str) -> Result<(), ProxyError> {
if !name
.bytes()
.all(|b| b.is_ascii_alphanumeric() || b == b'_' || b == b'-')
{
return Err(ProxyError::Config(format!(
"{kind} name '{name}' must contain only ASCII alphanumeric, '_', or '-'"
)));
}
Ok(())
}