LICENSE.txt
README.md
pyproject.toml
src/foghorn/__init__.py
src/foghorn/app.py
src/foghorn/main.py
src/foghorn/main_config_helpers.py
src/foghorn/runtime_config.py
src/foghorn/security_limits.py
src/foghorn.egg-info/PKG-INFO
src/foghorn.egg-info/SOURCES.txt
src/foghorn.egg-info/dependency_links.txt
src/foghorn.egg-info/entry_points.txt
src/foghorn.egg-info/requires.txt
src/foghorn.egg-info/top_level.txt
src/foghorn/config/__init__.py
src/foghorn/config/config_dump.py
src/foghorn/config/config_parser.py
src/foghorn/config/config_schema.py
src/foghorn/config/logging_config.py
src/foghorn/config/plugin_profiles.py
src/foghorn/config/rate_limit_check.py
src/foghorn/dnssec/dnssec_validate.py
src/foghorn/dnssec/trust_anchors.py
src/foghorn/dnssec/zone_helpers.py
src/foghorn/dnssec/zone_signer.py
src/foghorn/html/config-schema.json
src/foghorn/html/favicon.ico
src/foghorn/html/index.html
src/foghorn/html/logo.png
src/foghorn/html/styles.css
src/foghorn/html/transparent-logo.png
src/foghorn/html/transparent-white-logo.png
src/foghorn/plugins/__init__.py
src/foghorn/plugins/setup.py
src/foghorn/plugins/sql_safety.py
src/foghorn/plugins/cache/__init__.py
src/foghorn/plugins/cache/base.py
src/foghorn/plugins/cache/in_memory_ttl.py
src/foghorn/plugins/cache/memcached_cache.py
src/foghorn/plugins/cache/mongodb_cache.py
src/foghorn/plugins/cache/mysql_mariadb_cache.py
src/foghorn/plugins/cache/none.py
src/foghorn/plugins/cache/postgres_cache.py
src/foghorn/plugins/cache/redis_cache.py
src/foghorn/plugins/cache/registry.py
src/foghorn/plugins/cache/safe_codec.py
src/foghorn/plugins/cache/sqlite_cache.py
src/foghorn/plugins/cache/backends/foghorn_ttl.py
src/foghorn/plugins/cache/backends/mysql_ttl.py
src/foghorn/plugins/cache/backends/postgres_ttl.py
src/foghorn/plugins/cache/backends/sqlite_ttl.py
src/foghorn/plugins/querylog/__init__.py
src/foghorn/plugins/querylog/base.py
src/foghorn/plugins/querylog/influxdb.py
src/foghorn/plugins/querylog/json_logging.py
src/foghorn/plugins/querylog/mongodb.py
src/foghorn/plugins/querylog/mqtt_logging.py
src/foghorn/plugins/querylog/mysql_mariadb.py
src/foghorn/plugins/querylog/postgresql.py
src/foghorn/plugins/querylog/registry.py
src/foghorn/plugins/querylog/sqlite.py
src/foghorn/plugins/resolve/__init__.py
src/foghorn/plugins/resolve/access_control.py
src/foghorn/plugins/resolve/admin_ui.py
src/foghorn/plugins/resolve/base.py
src/foghorn/plugins/resolve/docker_hosts.py
src/foghorn/plugins/resolve/echo.py
src/foghorn/plugins/resolve/etc_hosts.py
src/foghorn/plugins/resolve/file_downloader.py
src/foghorn/plugins/resolve/filter.py
src/foghorn/plugins/resolve/flaky_server.py
src/foghorn/plugins/resolve/mdns.py
src/foghorn/plugins/resolve/rate_limit.py
src/foghorn/plugins/resolve/rate_limit_profiles.yaml
src/foghorn/plugins/resolve/registry.py
src/foghorn/plugins/resolve/ssh_keys.py
src/foghorn/plugins/resolve/upstream_router.py
src/foghorn/plugins/resolve/upstreams_health_profiles.yaml
src/foghorn/plugins/resolve/examples/dns_prefetch.py
src/foghorn/plugins/resolve/examples/examples.py
src/foghorn/plugins/resolve/examples/file_over_dns.py
src/foghorn/plugins/resolve/examples/finger.py
src/foghorn/plugins/resolve/examples/greylist.py
src/foghorn/plugins/resolve/examples/new_domain_filter.py
src/foghorn/plugins/resolve/zone_records/__init__.py
src/foghorn/plugins/resolve/zone_records/axfr_dnssec.py
src/foghorn/plugins/resolve/zone_records/axfr_polling.py
src/foghorn/plugins/resolve/zone_records/dnssec.py
src/foghorn/plugins/resolve/zone_records/helpers.py
src/foghorn/plugins/resolve/zone_records/journal.py
src/foghorn/plugins/resolve/zone_records/loader.py
src/foghorn/plugins/resolve/zone_records/notify.py
src/foghorn/plugins/resolve/zone_records/resolver.py
src/foghorn/plugins/resolve/zone_records/transfer.py
src/foghorn/plugins/resolve/zone_records/update_helpers.py
src/foghorn/plugins/resolve/zone_records/update_processor.py
src/foghorn/plugins/resolve/zone_records/watchdog.py
src/foghorn/servers/__init__.py
src/foghorn/servers/bg_executor.py
src/foghorn/servers/dns_runtime_state.py
src/foghorn/servers/doh_api.py
src/foghorn/servers/doh_logic.py
src/foghorn/servers/dot_server.py
src/foghorn/servers/executors.py
src/foghorn/servers/overload_response.py
src/foghorn/servers/recursive_resolver.py
src/foghorn/servers/runtime_state.py
src/foghorn/servers/server.py
src/foghorn/servers/server_failover.py
src/foghorn/servers/server_opcode.py
src/foghorn/servers/server_response_utils.py
src/foghorn/servers/server_runtime.py
src/foghorn/servers/server_upstream_health.py
src/foghorn/servers/tcp_server.py
src/foghorn/servers/udp_asyncio_server.py
src/foghorn/servers/udp_server.py
src/foghorn/servers/transports/axfr.py
src/foghorn/servers/transports/doh.py
src/foghorn/servers/transports/dot.py
src/foghorn/servers/transports/tcp.py
src/foghorn/servers/transports/udp.py
src/foghorn/servers/webserver/__init__.py
src/foghorn/servers/webserver/admin_logic.py
src/foghorn/servers/webserver/config_helpers.py
src/foghorn/servers/webserver/config_persistence.py
src/foghorn/servers/webserver/core.py
src/foghorn/servers/webserver/http_helpers.py
src/foghorn/servers/webserver/logging_utils.py
src/foghorn/servers/webserver/meta_helpers.py
src/foghorn/servers/webserver/rate_limit_helpers.py
src/foghorn/servers/webserver/routes_core.py
src/foghorn/servers/webserver/routes_static.py
src/foghorn/servers/webserver/routes_stats.py
src/foghorn/servers/webserver/runtime.py
src/foghorn/servers/webserver/server_management.py
src/foghorn/servers/webserver/stats_helpers.py
src/foghorn/servers/webserver/threaded_handlers.py
src/foghorn/servers/webserver/types_and_buffers.py
src/foghorn/stats/__init__.py
src/foghorn/stats/domain.py
src/foghorn/stats/formatters.py
src/foghorn/stats/histogram.py
src/foghorn/stats/meta.py
src/foghorn/stats/reporter.py
src/foghorn/stats/snapshot.py
src/foghorn/stats/topk.py
src/foghorn/stats/collector/__init__.py
src/foghorn/stats/collector/collector.py
src/foghorn/stats/collector/init.py
src/foghorn/stats/collector/plugin_upstream.py
src/foghorn/stats/collector/record.py
src/foghorn/stats/collector/snapshot.py
src/foghorn/stats/collector/warm_load.py
src/foghorn/stats/sqlite_store/__init__.py
src/foghorn/stats/sqlite_store/core.py
src/foghorn/stats/sqlite_store/query_log.py
src/foghorn/stats/sqlite_store/rebuild.py
src/foghorn/stats/sqlite_store/store.py
src/foghorn/utils/config_diagram.py
src/foghorn/utils/current_cache.py
src/foghorn/utils/dns_names.py
src/foghorn/utils/ip_networks.py
src/foghorn/utils/register_caches.py
src/foghorn/utils/ssh_keys.py
src/foghorn/utils/ssh_keyscan.py
tests/test_app_module.py
tests/test_cache.py
tests/test_config_diagram.py
tests/test_config_diagram_unit.py
tests/test_config_dump.py
tests/test_config_parser.py
tests/test_config_schema.py
tests/test_config_schema_security.py
tests/test_current_cache.py
tests/test_dnssec_validate.py
tests/test_dnssec_validate_chains.py
tests/test_dnssec_validate_more_coverage.py
tests/test_dnssec_validate_negative.py
tests/test_fallback_servers.py
tests/test_generate_foghorn_schema.py
tests/test_logging_config.py
tests/test_main.py
tests/test_main_additional_coverage.py
tests/test_main_doh_listener.py
tests/test_main_doh_webserver_failures.py
tests/test_main_dot_missing_cert.py
tests/test_main_entrypoint.py
tests/test_main_statistics.py
tests/test_main_stats_persistence.py
tests/test_main_tcp_listener.py
tests/test_main_udp_asyncio_listener.py
tests/test_main_upstream_doh_normalize.py
tests/test_plugin_priorities.py
tests/test_plugin_sigusr2.py
tests/test_recursive_resolver.py
tests/test_resolve_query_bytes_pipeline.py
tests/test_runtime_config_comprehensive.py
tests/test_security_limits.py
tests/test_server_cache_paths.py
tests/test_server_handle.py
tests/test_server_helpers_more.py
tests/test_server_unit.py
tests/test_sigusr1.py
tests/test_sigusr2_resets_stats.py
tests/test_statistics.py
tests/test_stats_integration.py
tests/test_stats_latency_recent.py
tests/test_stats_persistence.py
tests/test_stats_unit.py
tests/test_threaded_handlers_coverage.py
tests/test_trust_anchors.py
tests/test_trust_anchors_rfc5011.py
tests/test_udp_asyncio_inflight_cidr.py
tests/test_udp_asyncio_server_more_coverage.py
tests/test_upstreams_health_profiles.py
tests/test_webserver.py
tests/test_webserver_misc_coverage.py
tests/test_webserver_rate_limit_helpers.py
tests/test_webserver_routes_core_branch_coverage.py
tests/test_webserver_runtime_readiness_coverage.py
tests/test_webserver_system_info.py