rfxn / advanced-policy-firewall

Advanced Policy Firewall (APF)
GNU General Public License v2.0
93 stars 46 forks source link

Add support for -w when iptables >= 1.4.20 #36

Closed AlexisEvo closed 3 years ago

AlexisEvo commented 4 years ago

When two instances of the iptables command are ran simultaneously they often encounter a race condition resulting in one of the commands not being executed. mutex_lock/unlock stops two instances of apf from colliding, but external programs that call iptables directly may result in apf not adding the necessary rules.

In 1.4.20, iptables added native support for locking, as well as a wait timeout flag:

http://git.netfilter.org/iptables/commit/?id=93587a04d0f2511e108bbc4d87a8b9d28a5c5dd8 http://git.netfilter.org/iptables/commit/?id=d7aeda5ed45ac7ca959f12180690caa371b5b14b

This PR adds the flag with a default timeout of 3 seconds when iptables is >= 1.4.20.