Skip to content

feat(proxy): add asynchronous ProxyChecker - #36

Merged
LimiNode merged 7 commits into
mainfrom
feat/proxy-checker
Sep 21, 2026
Merged

LimiNode merged 7 commits into
mainfrom
feat/proxy-checker

Conversation

@LimiNode

Copy link
Copy Markdown
Owner

Summary

  • add passive ProxyCheckOptions and ProxyCheckResult value types
  • add asynchronous ProxyChecker::check() and check_proxy() helpers
  • use one configurable HTTP(S) no-body/HEAD request through the supplied legacy ProxyConfig
  • expose connect, TLS/CONNECT, TTFB, and total curl timings as milliseconds
  • add C++11 smoke coverage, local HTTP proxy integration coverage, an example, and synchronized EN/RU docs

Scope

This PR keeps ProxyConfig backward-compatible and does not add network behavior to it. Proxy benchmark pools, external-IP/geo-IP resolution, and selection policies remain follow-up features.

Verification

  • C++11 full HTTP/WebSocket smoke compiles
  • C++17 examples compile, including proxy_checker_example
  • full local integration suite: 14/14 passed
  • focused local proxy checker integration test passed

Constraint: preserve legacy ProxyConfig fields and C++11 compatibility

Rejected: proxy benchmark and external geo-IP lookup | keep the initial check focused

Directive: keep network probing outside ProxyConfig

Confidence: high

Scope-risk: moderate
Constraint: preserve the documented default of proxy_tunnel=false on C++11 and C++17 builds

Confidence: high

Scope-risk: narrow
Constraint: keep public headers independent of their relative filesystem location

Confidence: high

Scope-risk: narrow
Constraint: preserve C++11 support and match existing second-based HTTP timeout fields

Rejected: chrono durations retained for generic duration APIs, not passive proxy DTOs

Confidence: high

Scope-risk: moderate
Confidence: high

Scope-risk: narrow
@LimiNode
LimiNode merged commit 02e7a56 into main Sep 21, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant