Apply custom rules on connection change #1253
Merged
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.
Hi @ukanth, this fixes #579. Analysis of the issue:
InterfaceTracker#applyRules gets called when the (wifi) connection changes. This in turn calls Api#fastApply.
In there is a test for
!rulesUpToDate
which is usuallyfalse
in the case of just a connection change, so in turnapplyShortRules
andiptablesCommands
are executed and add their respective commands to the list. Nowhere Api#addCustomRules gets called, so the custom rules are ignored in this case.I then saw that
addCustomRules
is called in Api#applyIptablesRulesImpl right beforeaddInterfaceRouting
which is why I put the call inapplyShortRules
just beforeaddInterfaceRouting
.If I missed anything or you are not satisfied, let me know and I'll fix it.
Cheers