Skip to content

Commit 0d80106

Browse files
author
ldx
committed
Make sure extension.flags is up to date.
When we retrieve rules from iptables, reapply all parameters from the entry, so that the (match|target).(m|t)flags get updated. This commit fixes #22.
1 parent 0b08d3f commit 0d80106

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

iptc/ip4tc.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -339,6 +339,10 @@ def get_all_parameters(self):
339339

340340
return params
341341

342+
def _update_parameters(self):
343+
for k, v in self.get_all_parameters().iteritems():
344+
self.__setattr__(k, v)
345+
342346
def __setattr__(self, name, value):
343347
if not name.startswith('_') and name not in dir(self):
344348
self.parse(name.replace("_", "-"), value)
@@ -421,6 +425,7 @@ def __init__(self, rule, name=None, match=None, revision=None):
421425
if match:
422426
ct.memmove(ct.byref(self._match_buf), ct.byref(match), self.size)
423427
self._update_pointers()
428+
self._update_parameters()
424429
else:
425430
self.reset()
426431

@@ -545,6 +550,7 @@ def __init__(self, rule, name=None, target=None, revision=None):
545550
if target:
546551
ct.memmove(ct.byref(self._target_buf), ct.byref(target), self.size)
547552
self._update_pointers()
553+
self._update_parameters()
548554
else:
549555
self.reset()
550556

0 commit comments

Comments
 (0)