feat: enable client info for custom DoH/DoH3 upstreams #281
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.
Summary
This PR enables sending client information (hostname, IP address, MAC address) to custom DoH/DoH3 upstream servers when
send_client_info = trueis configured. Currently, this feature only works for ControlD and NextDNS upstreams.Changes
addHeader()function indoh.goto add adefaultcase that sends ControlD-style headers for custom upstreams whensend_client_info = trueconfig.goto reflect that client info can be sent to any DNS server, not just ControlDBehavior
When
send_client_info = trueis set for a custom upstream server:x-cd-host,x-cd-ip,x-cd-mac, etc.dohanddoh3upstream types (as documented)Use Case
This enables users to configure custom DNS servers that can identify and log client information, similar to how ControlD and NextDNS servers receive this information.
Testing
send_client_info = truesend_client_info = false(default)Fixes #280
I think this is the first PR I've ever submitted, so if I'm doing something wrong, please tell me...