This repository has been archived by the owner on Oct 30, 2023. It is now read-only.
TRACE header support (for vgs-edition branch) #73
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
TRACE header support (for vgs-edition branch)
For requests through forward proxy we can get additional (not required) TRACE header. For example:
PROXY TCP4 172.17.0.1 172.17.0.2 54636 8080
TRACE 1b458c481644a39176ba72dc6ddbf766
CONNECT httpbin.org:443 HTTP/1.1
Host: httpbin.org:443
User-Agent: curl/7.64.1
Proxy-Connection: Keep-Alive
...
Format: TRACE <32HEX>\r\n
It ALWAYS goes after PROXY header. No PROXY header ====> no TRACE for sure.
If there are no protocol headers (like PROXY or TRACE) => proxy will accept request and process
If there is just PROXY header => proxy will accept request and process
If there is PROXY and TRACE headers => proxy will accept request and process
If there is just TRACE header => we accept request BUT it will fail because CONNECT is expected to be the first word.
Related PR:
verygoodsecurity/nginx#1
opentracing/specification#150
verygoodsecurity/vault#3368
Fixes: https://app.clubhouse.io/vgs/story/67682/fix-tracing-for-forward-proxy