dhcpcd: Respect IPV6_PREFERRED_ONLY flag regardless of state #307
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.
Current IPv6_PREFERRED_ONLY (option 108) handling code is only effective when current state is DHS_DISCOVER or DHS_REBOOT. However the assumption that we'll only receive OFFER and ACK with option 108 in those two states is not true. Particularly, when we receive multiple ACKs upon our REQUEST, the first ACK will trigger the use_v6only code path and dhcp_drop() us into DHS_NONE state, therefore the option 108 on second ACK won't be handled correctly and we'll bind to the lease incorrectly.
DHS_NONE is not the only possible state, considering the corner cases of server configuration change and multiple servers. Thus we should just remove the state check here.