From 7f21bb8225550758f47bed40b3e09e8788e25bb4 Mon Sep 17 00:00:00 2001 From: Darryl Nixon Date: Fri, 30 Jun 2023 11:59:56 -0700 Subject: [PATCH] Adjust iptc for match-all --- drawbridge/net_queue.py | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drawbridge/net_queue.py b/drawbridge/net_queue.py index 9952385..427c948 100644 --- a/drawbridge/net_queue.py +++ b/drawbridge/net_queue.py @@ -35,20 +35,21 @@ class NetQueue: def _create_rule(self) -> iptc.Rule: rule = iptc.Rule() - match = iptc.Match(rule, self.protocol) target = iptc.Target(rule, "NFQUEUE") target.set_parameter("queue-num", str(self.queue)) - rule.add_match(match) + if self.protocol: + match = iptc.Match(rule, self.protocol) + rule.add_match(match) rule.target = target return rule def write_rule(self): - table = iptc.Table(iptc.Table.FILTER) + table = iptc.Table(iptc.Table.MANGLE) chain = iptc.Chain(table, "INPUT") chain.insert_rule(self.rule) def delete_rule(self): - table = iptc.Table(iptc.Table.FILTER) + table = iptc.Table(iptc.Table.MANGLE) chain = iptc.Chain(table, "INPUT") try: chain.delete_rule(self.rule) @@ -82,7 +83,7 @@ class NetQueue: def validate_protocol(protocol: Optional[str]) -> Union[str, None]: if protocol: try: - Protocols(protocol) + Protocols[protocol] except KeyError: raise KeyError(f"Invalid protocol: {protocol}") return protocol