SYMBOL INDEX (369 symbols across 38 files) FILE: cli/src/cli.rs function run_cli (line 6) | pub async fn run_cli() { FILE: cli/src/commands/generate.rs function cli_generate_seed (line 4) | pub async fn cli_generate_seed(_matches: &ArgMatches) { FILE: cli/src/commands/publickey.rs constant SECRET_KEY_LENGTH (line 8) | const SECRET_KEY_LENGTH: usize = 32; function read_seed_file (line 10) | fn read_seed_file(matches: &ArgMatches) -> Keypair { function parse_seed (line 25) | fn parse_seed(seed: &str) -> Keypair { function cli_publickey (line 40) | pub async fn cli_publickey(matches: &ArgMatches) { FILE: cli/src/commands/publish.rs constant SECRET_KEY_LENGTH (line 16) | const SECRET_KEY_LENGTH: usize = 32; function fill_dyndns_variables (line 21) | async fn fill_dyndns_variables(zone: &mut String) -> Result<(), anyhow::... function read_zone_file (line 43) | async fn read_zone_file(zone_file_path: &str, pubkey: &str) -> SimpleZone { function read_seed_file (line 66) | fn read_seed_file(seed_file_path: &str) -> Keypair { function parse_seed (line 89) | fn parse_seed(seed: &str) -> anyhow::Result { function parse_seed_hex (line 102) | fn parse_seed_hex(seed: &str) -> anyhow::Result { function parse_seed_zbase32 (line 111) | fn parse_seed_zbase32(seed: &str) -> anyhow::Result { function cli_publish (line 120) | pub async fn cli_publish(matches: &ArgMatches) { FILE: cli/src/commands/resolve.rs function resolve_pkarr (line 10) | async fn resolve_pkarr(uri: &str) -> (PkarrPacket, DateTime) { function get_arg_pubkey (line 26) | fn get_arg_pubkey(matches: &ArgMatches) -> Option { function cli_resolve (line 32) | pub async fn cli_resolve(matches: &ArgMatches) { FILE: cli/src/external_ip/providers/external_ip_resolver.rs type ExternalIpResult (line 9) | type ExternalIpResult = Result; type IpFuture (line 11) | type IpFuture = Pin>>>; type IpResolver (line 13) | type IpResolver = Pin IpFuture>>; type ProviderResolver (line 15) | pub struct ProviderResolver { method new (line 22) | pub fn new(name: String, ipv4: IpResolver, ipv6: IpResolver<... method ipv4 (line 27) | pub async fn ipv4(&self) -> Result { method ipv6 (line 33) | pub async fn ipv6(&self) -> Result { type ExternalIpResolverError (line 40) | pub enum ExternalIpResolverError { function resolve_ipv4_with_url (line 49) | pub async fn resolve_ipv4_with_url(url: T) -> Result(url: T) -> Result Result { function resolve_ipv6 (line 11) | pub async fn resolve_ipv6() -> Result { function get_resolver (line 15) | pub fn get_resolver() -> ProviderResolver { function test_ipv4 (line 28) | async fn test_ipv4() { function test_ipv6 (line 35) | async fn test_ipv6() { FILE: cli/src/external_ip/providers/identme.rs function resolve_ipv4 (line 7) | pub async fn resolve_ipv4() -> Result { function resolve_ipv6 (line 11) | pub async fn resolve_ipv6() -> Result { function get_resolver (line 15) | pub fn get_resolver() -> ProviderResolver { function test_ipv4 (line 28) | async fn test_ipv4() { function test_ipv6 (line 35) | async fn test_ipv6() { FILE: cli/src/external_ip/providers/ipifyorg.rs function resolve_ipv4 (line 7) | pub async fn resolve_ipv4() -> Result { function resolve_ipv6 (line 11) | pub async fn resolve_ipv6() -> Result { function get_resolver (line 15) | pub fn get_resolver() -> ProviderResolver { function test_ipv4 (line 28) | async fn test_ipv4() { function test_ipv6 (line 35) | async fn test_ipv6() { FILE: cli/src/external_ip/providers/ipinfoio.rs type IpResponse (line 8) | struct IpResponse { function resolve_ipv4 (line 12) | pub async fn resolve_ipv4() -> Result { function resolve_ipv6 (line 19) | pub async fn resolve_ipv6() -> Result { function get_resolver (line 26) | pub fn get_resolver() -> ProviderResolver { function test_ipv4 (line 39) | async fn test_ipv4() { function test_ipv6 (line 46) | async fn test_ipv6() { FILE: cli/src/external_ip/providers/myip.rs type IpResponse (line 8) | struct IpResponse { function resolve_ipv4 (line 12) | pub async fn resolve_ipv4() -> Result { function resolve_ipv6 (line 19) | pub async fn resolve_ipv6() -> Result { function get_resolver (line 26) | pub fn get_resolver() -> ProviderResolver { function test_ipv4 (line 39) | async fn test_ipv4() { function test_ipv6 (line 46) | async fn test_ipv6() { FILE: cli/src/external_ip/resolver.rs function resolve_ipv4 (line 10) | pub async fn resolve_ipv4() -> Result<(Ipv4Addr, String), &'static str> { function resolve_ipv6 (line 36) | pub async fn resolve_ipv6() -> Result<(Ipv6Addr, String), &'static str> { function test_ipv4 (line 65) | async fn test_ipv4() { function test_ipv6 (line 72) | async fn test_ipv6() { FILE: cli/src/helpers.rs function construct_pkarr_client (line 4) | pub fn construct_pkarr_client() -> Client { function nts_to_chrono (line 10) | pub fn nts_to_chrono(ntc: Timestamp) -> chrono::DateTime { FILE: cli/src/main.rs function main (line 12) | async fn main() -> Result<(), anyhow::Error> { FILE: cli/src/pkarr_packet.rs type PkarrPacket (line 11) | pub struct PkarrPacket { method empty (line 16) | pub fn empty() -> Self { method by_data (line 22) | pub fn by_data(data: Vec) -> Self { method parsed (line 26) | pub fn parsed(&self) -> Packet { method to_records (line 30) | pub fn to_records(&self) -> Vec { method answers_len (line 38) | pub fn answers_len(&self) -> usize { method is_emtpy (line 42) | pub fn is_emtpy(&self) -> bool { method fmt (line 48) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type PkarrRecord (line 66) | pub struct PkarrRecord { method by_data (line 72) | pub fn by_data(data: Vec) -> Result { method by_resource_record (line 85) | pub fn by_resource_record(rr: &ResourceRecord) -> Self { method get_resource_record (line 94) | pub fn get_resource_record(&self) -> ResourceRecord { method pubkey (line 99) | pub fn pubkey(&self) -> String { method name (line 105) | pub fn name(&self) -> String { method ttl (line 117) | pub fn ttl(&self) -> u32 { method data_as_strings (line 122) | pub fn data_as_strings(&self) -> (&str, String) { method fmt (line 166) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { FILE: cli/src/simple_zone.rs type SimpleZone (line 15) | pub struct SimpleZone { method read (line 23) | pub fn read(simplified_zone: String, pubkey: &str) -> Result String { method parse_simplified_zone (line 53) | fn parse_simplified_zone(simplified_zone: String, pubkey: &str) -> Res... method entries_to_simple_dns_packet (line 79) | fn entries_to_simple_dns_packet(entries: Vec) -> Result... function simplified_zone (line 183) | fn simplified_zone() -> String { function test_create_entries (line 206) | fn test_create_entries() { function test_transform (line 216) | fn test_transform() { function test_pkarr_records (line 225) | fn test_pkarr_records() { function test_read_zone_txt1 (line 242) | fn test_read_zone_txt1() { function test_read_zone_txt2 (line 262) | fn test_read_zone_txt2() { function test_read_zone_txt3 (line 279) | fn test_read_zone_txt3() { FILE: server/src/app_context.rs type AppContext (line 4) | pub struct AppContext { method from_data_dir (line 9) | pub fn from_data_dir(data_dir: impl DataDir) -> Result Self { function test_from_data_dir (line 30) | fn test_from_data_dir() { FILE: server/src/config/config_file.rs type ConfigReadError (line 8) | pub enum ConfigReadError { constant SAMPLE_CONFIG (line 18) | pub const SAMPLE_CONFIG: &str = include_str!("../../config.sample.toml"); type ConfigToml (line 21) | pub struct ConfigToml { method sample (line 32) | pub fn sample() -> String { method commented_out_sample (line 38) | pub fn commented_out_sample() -> String { method from_file (line 61) | pub fn from_file(path: impl AsRef) -> Result Self { type Error (line 77) | type Error = ConfigReadError; method try_from (line 78) | fn try_from(value: &str) -> Result { type General (line 85) | pub struct General { method default (line 100) | fn default() -> Self { function default_socket (line 110) | fn default_socket() -> SocketAddr { function default_forward (line 114) | fn default_forward() -> SocketAddr { function default_false (line 118) | fn default_false() -> bool { function default_none (line 122) | fn default_none() -> Option { type Dns (line 127) | pub struct Dns { method default (line 151) | fn default() -> Self { function default_min_ttl (line 164) | fn default_min_ttl() -> u64 { function default_max_ttl (line 168) | fn default_max_ttl() -> u64 { function default_query_rate_limit (line 172) | fn default_query_rate_limit() -> u32 { function default_query_rate_limit_burst (line 176) | fn default_query_rate_limit_burst() -> u32 { function default_icann_cache_mb (line 180) | fn default_icann_cache_mb() -> u64 { function default_max_recursion_depth (line 184) | fn default_max_recursion_depth() -> u8 { type Dht (line 189) | pub struct Dht { function deserialize_top_level_domain (line 203) | fn deserialize_top_level_domain<'de, D>(deserializer: D) -> Result NonZeroU64 { function default_dht_rate_limit (line 220) | fn default_dht_rate_limit() -> u32 { function default_dht_rate_limit_burst (line 224) | fn default_dht_rate_limit_burst() -> u32 { function default_top_level_domain (line 228) | fn default_top_level_domain() -> Option { method default (line 233) | fn default() -> Self { function test_parse_sample_config (line 248) | fn test_parse_sample_config() { function test_commented_out_sample (line 253) | fn test_commented_out_sample() { function test_default_config_top_level_domain (line 259) | fn test_default_config_top_level_domain() { FILE: server/src/config/data_dir.rs type DataDir (line 10) | pub trait DataDir: std::fmt::Debug + DynClone + Send + Sync { method path (line 12) | fn path(&self) -> &Path; method ensure_data_dir_exists_and_is_writable (line 15) | fn ensure_data_dir_exists_and_is_writable(&self) -> anyhow::Result<()>; method read_or_create_config_file (line 19) | fn read_or_create_config_file(&self) -> anyhow::Result; FILE: server/src/config/mock_data_dir.rs type MockDataDir (line 11) | pub struct MockDataDir { method new (line 21) | pub fn new(config_toml: super::ConfigToml) -> anyhow::Result { method test (line 29) | pub fn test() -> Self { method default (line 36) | fn default() -> Self { method path (line 42) | fn path(&self) -> &Path { method ensure_data_dir_exists_and_is_writable (line 46) | fn ensure_data_dir_exists_and_is_writable(&self) -> anyhow::Result<()> { method read_or_create_config_file (line 50) | fn read_or_create_config_file(&self) -> anyhow::Result { FILE: server/src/config/persistent_data_dir.rs type PersistentDataDir (line 12) | pub struct PersistentDataDir { method new (line 19) | pub fn new(path: PathBuf) -> Self { method expand_home_dir (line 27) | fn expand_home_dir(path: PathBuf) -> PathBuf { method get_config_file_path (line 47) | pub fn get_config_file_path(&self) -> PathBuf { method write_sample_config_file (line 51) | fn write_sample_config_file(&self) -> anyhow::Result<()> { method default (line 61) | fn default() -> Self { method path (line 68) | fn path(&self) -> &Path { method ensure_data_dir_exists_and_is_writable (line 74) | fn ensure_data_dir_exists_and_is_writable(&self) -> anyhow::Result<()> { method read_or_create_config_file (line 88) | fn read_or_create_config_file(&self) -> anyhow::Result { function test_expand_home_dir (line 107) | pub fn test_expand_home_dir() { function test_ensure_data_dir_exists_and_is_accessible (line 116) | pub fn test_ensure_data_dir_exists_and_is_accessible() { function test_get_default_config_file_path_exists (line 129) | pub fn test_get_default_config_file_path_exists() { function test_read_or_create_config_file (line 144) | pub fn test_read_or_create_config_file() { function test_read_or_create_config_file_dont_override_existing_file (line 157) | pub fn test_read_or_create_config_file_dont_override_existing_file() { FILE: server/src/config/top_level_domain.rs type TopLevelDomain (line 6) | pub struct TopLevelDomain(pub String); method new (line 9) | pub fn new(tld: String) -> Self { method label (line 13) | pub fn label(&self) -> &str { method question_ends_with_pubkey_tld (line 18) | pub fn question_ends_with_pubkey_tld(&self, packet: &Packet<'_>) -> bo... method remove (line 29) | pub fn remove(&self, packet: &mut Packet<'_>) { method name_ends_with_pubkey_tld (line 64) | pub fn name_ends_with_pubkey_tld(&self, name: &Name<'_>) -> bool { method name_ends_with_pubkey (line 83) | pub fn name_ends_with_pubkey(&self, name: &Name<'_>) -> bool { method add (line 97) | pub fn add(&self, reply: &mut Packet<'_>) { function create_query_with_domain (line 137) | fn create_query_with_domain(domain: &str) -> Vec { function create_reply_with_domain (line 150) | fn create_reply_with_domain(domain: &str) -> Vec { function is_pkarr_with_tld_valid_2_label (line 165) | async fn is_pkarr_with_tld_valid_2_label() { function is_pkarr_with_tld_valid_3_label (line 173) | async fn is_pkarr_with_tld_valid_3_label() { function is_pkarr_with_tld_fail_1_label (line 181) | async fn is_pkarr_with_tld_fail_1_label() { function is_pkarr_with_tld_fail_2_label_no_pubkey (line 189) | async fn is_pkarr_with_tld_fail_2_label_no_pubkey() { function is_pkarr_with_tld_fail_2_label_wrong_tld (line 197) | async fn is_pkarr_with_tld_fail_2_label_wrong_tld() { function remove_tld_success_2_labels (line 205) | async fn remove_tld_success_2_labels() { function remove_tld_success_3_labels (line 218) | async fn remove_tld_success_3_labels() { function add_success_1_label (line 234) | async fn add_success_1_label() { function add_success_2_label (line 259) | async fn add_success_2_label() { FILE: server/src/dns_over_https/server.rs constant ERROR_PREFIX (line 26) | const ERROR_PREFIX: &str = " function validate_accept_header (line 40) | fn validate_accept_header(headers: &HeaderMap) -> Result<(), (StatusCode... function decode_dns_base64_packet (line 61) | fn decode_dns_base64_packet(param: &String) -> Result, (StatusCo... function get_lowest_ttl (line 83) | fn get_lowest_ttl(reply: &[u8]) -> u32 { function extract_client_ip (line 103) | fn extract_client_ip(request_addr: &SocketAddr, headers: &HeaderMap) -> ... function query_to_response (line 118) | async fn query_to_response(query: Vec, dns_socket: &mut DnsSocket, c... function dns_query_get (line 133) | async fn dns_query_get( function dns_query_post (line 152) | async fn dns_query_post( type AppState (line 170) | pub struct AppState { function create_app (line 174) | fn create_app(dns_socket: DnsSocket) -> Router { function run_doh_server (line 187) | pub async fn run_doh_server(addr: SocketAddr, dns_socket: DnsSocket) -> ... function query_doh_wireformat_get (line 210) | async fn query_doh_wireformat_get() { function query_doh_wireformat_post (line 248) | async fn query_doh_wireformat_post() { function wrong_content_type (line 287) | async fn wrong_content_type() { FILE: server/src/helpers.rs function set_full_stacktrace_as_default (line 9) | pub(crate) fn set_full_stacktrace_as_default() { function enable_logging (line 19) | pub(crate) fn enable_logging(verbose: bool) { function wait_on_ctrl_c (line 61) | pub(crate) async fn wait_on_ctrl_c() { FILE: server/src/main.rs type Cli (line 20) | struct Cli { function main (line 35) | async fn main() -> Result<(), Box> { FILE: server/src/resolution/dns_packets/parsed_packet.rs method try_from_bytes (line 22) | pub fn try_from_bytes(bytes: Vec) -> Result &Packet { method raw_bytes (line 32) | pub fn raw_bytes(&self) -> &Vec { method clone (line 38) | fn clone(&self) -> Self { function from (line 45) | fn from(val: Inner) -> Self { type ParsedPacket (line 53) | pub struct ParsedPacket { method new (line 58) | pub fn new(raw_bytes: Vec) -> Result u16 { method parsed (line 68) | pub fn parsed(&self) -> &Packet { method raw_bytes (line 73) | pub fn raw_bytes(&self) -> &Vec { method is_reply (line 78) | pub fn is_reply(&self) -> bool { method is_query (line 83) | pub fn is_query(&self) -> bool { method create_refused_reply (line 88) | pub fn create_refused_reply(&self) -> Vec { method create_server_fail_reply (line 95) | pub fn create_server_fail_reply(&self) -> Vec { function from (line 103) | fn from(val: ParsedPacket) -> Self { function new (line 114) | async fn new() { FILE: server/src/resolution/dns_packets/parsed_query.rs type ParseQueryError (line 8) | pub enum ParseQueryError { type ParsedQuery (line 17) | pub struct ParsedQuery { method new (line 23) | pub fn new(bytes: Vec) -> Result { method validate (line 31) | fn validate(&self) -> Result<(), anyhow::Error> { method question (line 48) | pub fn question(&self) -> &Question { method is_any_type (line 53) | pub fn is_any_type(&self) -> bool { method is_recursion_desired (line 57) | pub fn is_recursion_desired(&self) -> bool { type Error (line 79) | type Error = ParseQueryError; method try_from (line 80) | fn try_from(value: ParsedPacket) -> Result { method fmt (line 63) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { method from (line 88) | fn from(val: ParsedQuery) -> Self { function new (line 100) | async fn new() { function tryfrom_parsed_packet (line 114) | async fn tryfrom_parsed_packet() { FILE: server/src/resolution/dns_socket.rs type DnsSocketError (line 45) | pub enum DnsSocketError { type DnsSocket (line 63) | pub struct DnsSocket { method default_random_socket (line 78) | pub async fn default_random_socket() -> tokio::io::Result { method new (line 90) | pub async fn new(context: &AppContext) -> tokio::io::Result { method is_recursion_available (line 114) | fn is_recursion_available(&self) -> bool { method send_to (line 119) | pub async fn send_to(&self, buffer: &[u8], target: &SocketAddr) -> tok... method start_receive_loop (line 125) | pub fn start_receive_loop(&self) -> oneshot::Sender<()> { method receive_datagram (line 147) | async fn receive_datagram(&mut self) -> Result<(), DnsSocketError> { method query_me_recursively_raw (line 198) | pub async fn query_me_recursively_raw(&mut self, query: Vec, from:... method query_me_recursively_with_log (line 214) | pub async fn query_me_recursively_with_log(&mut self, query: &ParsedQu... method query_me_recursively (line 222) | async fn query_me_recursively(&mut self, query: &ParsedQuery, from: Op... method query_me_once (line 403) | async fn query_me_once( method forward (line 449) | pub async fn forward( method forward_to_icann (line 481) | pub async fn forward_to_icann( method extract_query_id (line 504) | fn extract_query_id(&self, query: &[u8]) -> Result { method create_refused_reply (line 509) | fn create_refused_reply(query_id: u16) -> Vec { method create_server_fail_reply (line 516) | fn create_server_fail_reply(query_id: u16) -> Vec { function publish_domain (line 558) | async fn publish_domain() { function resolve_query_recursively (line 649) | async fn resolve_query_recursively(query: Vec) -> Vec { function recursion_cname_icann (line 659) | async fn recursion_cname_icann() { function recursion_cname_icann_with_tld (line 681) | async fn recursion_cname_icann_with_tld() { function recursion_cname_pkd (line 703) | async fn recursion_cname_pkd() { function recursion_cname_pkd2 (line 726) | async fn recursion_cname_pkd2() { function recursion_cname_infinite (line 751) | async fn recursion_cname_infinite() { function recursion_not_found1 (line 771) | async fn recursion_not_found1() { function recursion_not_found2 (line 791) | async fn recursion_not_found2() { function recursion_ns_pkd (line 808) | async fn recursion_ns_pkd() { function recursion_ns_soa_icann (line 835) | async fn recursion_ns_soa_icann() { FILE: server/src/resolution/helpers.rs function replace_packet_id (line 4) | pub fn replace_packet_id(packet: &[u8], new_id: u16) -> Result, ... FILE: server/src/resolution/pending_request.rs type PendingRequest (line 14) | pub struct PendingRequest { type PendingRequestKey (line 28) | struct PendingRequestKey { type PendingRequestStore (line 41) | pub struct PendingRequestStore { method insert (line 47) | pub fn insert(&mut self, request: PendingRequest) { method remove_by_forward_id (line 57) | pub fn remove_by_forward_id(&mut self, forward_query_id: &u16, from: &... method new (line 66) | pub fn new() -> Self { FILE: server/src/resolution/pkd/bootstrap_nodes.rs type DomainPortAddr (line 10) | pub(crate) struct DomainPortAddr { method new (line 16) | pub const fn new(domain: &'static str, port: u16) -> Self { method fmt (line 22) | fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { type MainlineBootstrapResolverError (line 35) | pub enum MainlineBootstrapResolverError { type MainlineBootstrapResolver (line 46) | pub(crate) struct MainlineBootstrapResolver { method new (line 51) | pub fn new(dns_server: SocketAddr) -> Result Result, Mainli... method lookup (line 88) | fn lookup(&self, boostrap_node: &DomainPortAddr) -> Result Result, MainlineB... method get_addrs (line 117) | pub fn get_addrs(dns_server: &SocketAddr) -> Result, M... function query_domain (line 129) | async fn query_domain() { function query_bootstrap_node (line 136) | async fn query_bootstrap_node() { function query_bootstrap_nodes (line 145) | async fn query_bootstrap_nodes() { FILE: server/src/resolution/pkd/pkarr_cache.rs function get_timestamp_seconds (line 13) | fn get_timestamp_seconds() -> u64 { type CacheItem (line 24) | pub enum CacheItem { method new_packet (line 42) | pub fn new_packet(packet: SignedPacket) -> Self { method new_not_found (line 49) | pub fn new_not_found(pubkey: PublicKey) -> Self { method is_found (line 57) | pub fn is_found(&self) -> bool { method not_found (line 67) | pub fn not_found(&self) -> bool { method is_packet (line 72) | pub fn is_packet(&self) -> bool { method unwrap (line 85) | pub fn unwrap(self) -> SignedPacket { method public_key (line 97) | pub fn public_key(&self) -> PublicKey { method refresh_updated_at (line 113) | pub fn refresh_updated_at(&mut self) { method controller_timestamp (line 134) | pub fn controller_timestamp(&self) -> u64 { method last_updated_at (line 147) | fn last_updated_at(&self) -> u64 { method lowest_answer_ttl (line 164) | fn lowest_answer_ttl(&self) -> Option { method memory_size (line 180) | pub fn memory_size(&self) -> usize { method next_refresh_needed_in_s (line 198) | pub fn next_refresh_needed_in_s(&self, min_ttl: u64, max_ttl: u64) -> ... type PkarrPacketLruCache (line 219) | pub struct PkarrPacketLruCache { method new (line 224) | pub fn new(cache_size_mb: Option) -> Self { method add (line 237) | async fn add(&mut self, new_item: CacheItem) -> CacheItem { method add_packet (line 264) | pub async fn add_packet(&mut self, packet: SignedPacket) -> CacheItem { method add_not_found (line 272) | pub async fn add_not_found(&mut self, pubkey: PublicKey) -> CacheItem { method get (line 280) | pub async fn get(&self, pubkey: &PublicKey) -> Option { method approx_size_bytes (line 289) | pub fn approx_size_bytes(&self) -> u64 { method entry_count (line 294) | pub fn entry_count(&self) -> u64 { function example_signed_packet (line 309) | fn example_signed_packet(keypair: Keypair) -> SignedPacket { function packet_memory_size (line 330) | async fn packet_memory_size() { function cache_size (line 337) | async fn cache_size() { function insert_get (line 349) | async fn insert_get() { function override_old_cached_packet (line 363) | async fn override_old_cached_packet() { function keep_newer_cached_packet (line 377) | async fn keep_newer_cached_packet() { function override_old_not_found_cached_packet (line 391) | async fn override_old_not_found_cached_packet() { function not_found_not_overriding_cached_packet (line 404) | async fn not_found_not_overriding_cached_packet() { FILE: server/src/resolution/pkd/pkarr_resolver.rs type CustomHandlerError (line 32) | pub enum CustomHandlerError { type PkarrResolverError (line 48) | pub enum PkarrResolverError { type PkarrResolver (line 59) | pub struct PkarrResolver { method resolve_bootstrap_nodes (line 74) | fn resolve_bootstrap_nodes(forward_dns_server: &SocketAddr) -> Vec Self { method new (line 99) | pub async fn new(context: &AppContext) -> Self { method is_refresh_needed (line 117) | fn is_refresh_needed(&self, item: &CacheItem) -> bool { method resolve_pubkey_respect_cache (line 126) | async fn resolve_pubkey_respect_cache( method lookup_dht_and_cache (line 158) | async fn lookup_dht_and_cache(&mut self, pubkey: PublicKey) -> Result<... method remove_tld_if_necessary (line 185) | fn remove_tld_if_necessary(&self, mut query: &mut Packet<'_>) -> bool { method add_tld_if_necessary (line 195) | fn add_tld_if_necessary(&self, mut reply: &mut Packet<'_>) -> bool { method resolve (line 206) | pub async fn resolve( type SignedPacketTimestamp (line 283) | trait SignedPacketTimestamp { method chrono_timestamp (line 284) | fn chrono_timestamp(&self) -> DateTime; method chrono_timestamp (line 288) | fn chrono_timestamp(&self) -> DateTime { function get_test_keypair (line 295) | fn get_test_keypair() -> Keypair { function publish_record (line 304) | async fn publish_record() { function query_domain (line 333) | async fn query_domain() { function query_pubkey (line 362) | async fn query_pubkey() { function query_invalid_pubkey (line 390) | async fn query_invalid_pubkey() { function pkarr_invalid_packet1 (line 408) | async fn pkarr_invalid_packet1() { function pkarr_invalid_packet3 (line 417) | fn pkarr_invalid_packet3() { FILE: server/src/resolution/pkd/pubkey_parser.rs type PubkeyParserError (line 4) | pub enum PubkeyParserError { function parse_pkarr_uri (line 12) | pub fn parse_pkarr_uri(uri: &str) -> Result { function test_parse_pkarr_uri (line 39) | fn test_parse_pkarr_uri() { FILE: server/src/resolution/pkd/query_matcher.rs function resolve_query (line 18) | pub async fn resolve_query<'a>(pkarr_packet: &Packet<'a>, query: &Packet... function resolve_question (line 34) | async fn resolve_question<'a>(pkarr_packet: &Packet<'a>, question: &Ques... function resolve_cname_for (line 68) | fn resolve_cname_for<'a>(pkarr_packet: &Packet<'a>, question: &Question<... function direct_matches (line 94) | fn direct_matches<'a>(pkarr_packet: &Packet<'a>, qname: &Name<'a>, qtype... function find_nameserver (line 107) | fn find_nameserver<'a>(pkarr_packet: &Packet<'a>, qname: &Name<'a>) -> V... function create_domain_not_found_reply (line 196) | pub fn create_domain_not_found_reply(query_id: u16) -> Vec { function example_pkarr_reply (line 216) | fn example_pkarr_reply() -> (Vec, PublicKey) { function simple_a_question (line 265) | async fn simple_a_question() { function a_question_with_cname (line 291) | async fn a_question_with_cname() { function a_question_with_ns (line 324) | async fn a_question_with_ns() { function a_question_with_ns_subdomain (line 352) | async fn a_question_with_ns_subdomain() { function simple_a_query (line 381) | async fn simple_a_query() { FILE: server/src/resolution/query_id_manager.rs type QueryIdManager (line 15) | pub struct QueryIdManager { method get_next (line 23) | pub fn get_next(&mut self, server: &SocketAddr) -> u16 { method new (line 34) | pub fn new() -> Self { FILE: server/src/resolution/rate_limiter.rs type RateLimitingKey (line 16) | enum RateLimitingKey { method from_ipv4 (line 25) | pub fn from_ipv4(ip: Ipv4Addr) -> Self { method from_ipv6 (line 32) | pub fn from_ipv6(ip: Ipv6Addr) -> Self { method from (line 43) | fn from(value: IpAddr) -> Self { method hash (line 52) | fn hash(&self, state: &mut H) { type RateLimiterBuilder (line 66) | pub struct RateLimiterBuilder { method new (line 73) | pub fn new() -> Self { method max_per_second (line 85) | pub fn max_per_second(mut self, limit: u32) -> Self { method max_per_minute (line 94) | pub fn max_per_minute(mut self, limit: u32) -> Self { method burst_size (line 101) | pub fn burst_size(mut self, size: u32) -> Self { method build (line 107) | pub fn build(self) -> RateLimiter { type RateLimiter (line 132) | pub struct RateLimiter { method check_is_limited_and_increase (line 140) | pub fn check_is_limited_and_increase(&self, ip: &IpAddr) -> bool { FILE: server/src/resolution/response_cache.rs type CacheItem (line 9) | pub struct CacheItem { method new (line 16) | pub fn new(query: Vec, response: Vec) -> Result Result { method response_packet (line 37) | fn response_packet(&self) -> Packet { method lowest_answer_ttl (line 43) | pub fn lowest_answer_ttl(&self) -> Option { method memory_size (line 53) | pub fn memory_size(&self) -> usize { method expires_in (line 58) | pub fn expires_in(&self, min_ttl: u64, max_ttl: u64) -> SystemTime { method is_outdated (line 68) | pub fn is_outdated(&self, min_ttl: u64, max_ttl: u64) -> bool { type IcannLruCache (line 77) | pub struct IcannLruCache { method new (line 84) | pub fn new(cache_size_mb: u64, min_ttl: u64, max_ttl: u64) -> Self { method add (line 96) | pub async fn add(&mut self, query: Vec, response: Vec) -> Resu... method get (line 103) | pub async fn get(&self, query: &[u8]) -> Result, any... method approx_size_bytes (line 117) | pub fn approx_size_bytes(&self) -> u64 { method entry_count (line 122) | pub fn entry_count(&self) -> u64 { function example_query_response (line 132) | fn example_query_response(ttl: u32) -> (Vec, Vec) { function add_and_get (line 158) | async fn add_and_get() { function outdated_get (line 169) | async fn outdated_get() { function zero_cache_size (line 179) | async fn zero_cache_size() {