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