rule opt
This commit is contained in:
@@ -48,16 +48,26 @@ def _render_payload_line(payload_line: str, behavior: str) -> str:
|
||||
return payload_line
|
||||
|
||||
|
||||
def _attach_policy(rendered_line: str, target: str, append_no_resolve: bool) -> str:
|
||||
parts = [part.strip() for part in rendered_line.split(",")]
|
||||
if parts and parts[-1] == "no-resolve":
|
||||
parts.insert(len(parts) - 1, target)
|
||||
line = ",".join(parts)
|
||||
else:
|
||||
line = f"{rendered_line},{target}"
|
||||
if append_no_resolve:
|
||||
line += ",no-resolve"
|
||||
return line
|
||||
|
||||
|
||||
def _resolve_rule_lines(rule_name: str, app_config: AppConfig, client: ClientConfig) -> list[str]:
|
||||
rule = app_config.rules[rule_name]
|
||||
target = resolve_policy(rule.policy, client)
|
||||
lines: list[str] = []
|
||||
|
||||
for payload_line in rule.payload:
|
||||
line = f"{payload_line},{target}"
|
||||
if rule.no_resolve:
|
||||
line += ",no-resolve"
|
||||
lines.append(line)
|
||||
rendered = _render_payload_line(payload_line, rule.behavior)
|
||||
lines.append(_attach_policy(rendered, target, rule.no_resolve))
|
||||
|
||||
if rule.file:
|
||||
line = f"RULE-SET,{rule_name},{target}"
|
||||
@@ -108,9 +118,6 @@ def build_inline_rules(app_config: AppConfig, client: ClientConfig) -> list[str]
|
||||
target = resolve_policy(rule.policy, client)
|
||||
for payload_line in load_rule_payload(path):
|
||||
rendered = _render_payload_line(payload_line, rule.behavior)
|
||||
line = f"{rendered},{target}"
|
||||
if rule.no_resolve:
|
||||
line += ",no-resolve"
|
||||
lines.append(line)
|
||||
lines.append(_attach_policy(rendered, target, rule.no_resolve))
|
||||
lines.append(f"MATCH,{client.main_policy}")
|
||||
return lines
|
||||
|
||||
Reference in New Issue
Block a user