Use IPV6_HDRINCL in set_header_included_v6() on Linux #563
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.
This pull request introduces a platform-specific configuration to use IPV6_HDRINCL in set_header_included_v6() on Linux.
Background: Linux has defined IPv6 specific constant IPV6_HDRINCL (36) that needs to be used when setting HDRINCL socket option instead of IP_HDRINCL (2). Without it, set_header_included_v6() function does not work as expected and a kernel provided header is added to packets sent even if
set_header_included_v6(true)
is called on a raw socket.src/socket.rs
: Added conditional compilation forIPV6_HDRINCL
on Linux andIP_HDRINCL
on non-Linux systems to thesetsockopt
function.src/sys/unix.rs
: Added conditional use oflibc::IPV6_HDRINCL
for Linux systems.