- Added get_fake_ip_type utility for network address validation
- Integrated IP classification logic into tls_scanner
- Added support for detecting ISP, Fake-IP, and local network ranges
- Updated scan results to display specific statuses for detected IPs
- Implemented `check_dns_availability` to measure DNS server latency
- Added `DNS_AVAILABILITY_SERVERS` and `DNS_AVAILABILITY_DOMAINS` to config
- Updated `_format_summary` to include DNS availability statistics
- Integrated DNS availability results into the CLI menu (Test 2)
- Added DoH wire-format (RFC 8484) support for improved probe reliability
- Enhanced `_parse_dns_response` for better error handling and parsing
- Refactored `run_domains_test` to better classify ISP, local, and Fake-IP
- Modify configuration loading logic for frozen applications
- Prioritize external `config.yml` located next to the executable
- Fallback to bundled `config.yml` within the application package
- Enhance flexibility for user-defined configuration files
- Introduced granular httpx.Timeout configurations for AsyncClient.
- Replaced a single config.TIMEOUT with CONNECT_TIMEOUT, READ_TIMEOUT.
- Added POOL_TIMEOUT to manage connection pool wait times.
- Refactored tls_scanner.py and tcp16_scanner.py for error handling.
- Leveraged utils.error_classifier for consistent error classification.
- Enhanced classify_connect_error with specific PoolTimeout handling.
- Updated cli/runners.py to display the new CONNECT_TIMEOUT.
- Improved error labels and details within error_classifier.py.
- Introduce new "Search for whitelisted SNI for ASN" (Test 4).
- Load SNI whitelist from `whitelist_sni.txt`.
- Update test selection UI and logic to include Test 4.
- Remove IPv6 resolution and related logic from domain checks.
- Simplify `cli/runners._resolve_worker` by dropping IPv6.
- Adjust domain test output table and summary after IPv6 removal.
- Update `cli/ui.format_domain_details` to reflect IPv6 removal.
- Replace os.path with pathlib.Path for improved path manipulation.
- Rename get_exe_dir to get_base_dir for clarity and broader applicability.
- Introduce wait_and_exit utility for user-friendly program termination on errors.
- Integrate wait_and_exit into config.py and file loading functions.
- Enhance error messages for missing resource files.
- Remove `apply_ipv4_only_patch` and its global IPv4-only patch
- `get_resolved_ip` now accepts `family` parameter (defaults to IPv4)
- Allows resolution of IPv6 addresses by specifying `socket.AF_INET6`
- Update docstring to clarify new `family` parameter usage
- Remove unused `config` import