- network: ipv6_supported(), _ip_family(), pin_host() (замена pin_ipv4),
format_ip_for_url() для [v6]-литералов, get_resolved_ip с family из конфига
- runners: при IPv6-режиме неудачный AAAA-резолв фолбэчится на A,
отличия NXDOMAIN от "IPv6 не поддерживается"
- tls/telegram: URL с IPv6-адресом в квадратных скобках
- All hostname-based probes (DoH wire/json, TLS/SNI, telegram media)
now resolve A-record and connect by IP with Host/sni_hostname,
preventing silent IPv6 fallback via getaddrinfo(AF_UNSPEC).
- Skipped when PROXY_URL is set (remote resolution belongs to proxy).
- Test 2: warmup/combat exceptions classified like test 3
(SYN DROP / TLS RST / TLS DROP / TLS MITM ...) instead of blanket TIMEOUT;
async trace hook per request stage.
- Remove unused ipv6 parameter of create_dpi_client.
TLS RST details now say where the reset happened: 'TCP RST na
ClientHello' during handshake, 'TCP RST posle handshake' after it.
Domain row shows probe time only when both TLS probes succeed
(green OK or NO TLS1.3) - error rows carry no timing noise.
Legend documents TLS RST.
Redirect to the same host/subdomain over https is a normal upgrade,
not a suspicious redirect: report green OK instead of green REDIR in
both TLS and HTTP probes. Replace str.removeprefix (py3.9+) with
_strip_www helper - the win7 build targets Python 3.8.
- Switched TLS scanner request method from GET to HEAD
- Updated request headers for better compatibility
- Removed stream=True from scanner response handling
- Introduced _SHARED_VERIFY_CTX for TCP scanner instances
- Reused SSL context to reduce object allocation overhead
- Implemented trace hooks in scanners to monitor connection lifecycle
- Added 'stage' parameter to classify_connect_error for precise logs
- Enhanced error reporting to distinguish between SYN, TLS, and I/O drops
- Updated tls_scanner, tcp16_scanner, and error_classifier modules
- 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
- Introduce `stub_ips` for early ISP page detection via DNS.
- Refactor redirect classification.
- Differentiate between same-domain/subdomain and external redirects.
- Remove `config.BLOCK_MARKERS` and `BODY_BLOCK_MARKERS` usage.
- Update `cli/ui` legend for new ISP page and redirect statuses.
- Integrate `stub_ips` into TLS and HTTP scanning workers.
- Simplify HTTP/TLS status reporting for redirects and connections.
- Ensure all HTTPX clients and transports respect config.PROXY_URL
- Explicitly set trust_env=False to prevent unexpected proxy discovery
- Apply proxy settings to DoH DNS queries
- Apply proxy settings to TLS scanner connections
- Apply proxy settings to TCP/16 scanner probes
- Apply proxy settings to GitHub API calls for version checks
- 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.
- Add `ipv6` parameter to `create_dpi_client` for IPv6 configuration
- Introduce `resolved_ip` parameter in `_check_tls_single` for direct IP connection
- Refactor `check_tls` to perform a single TLS check, removing internal retries
- Update docstrings to reflect new parameters and simplified check flow