ip cidr fix

This commit is contained in:
riglen
2026-03-31 17:12:53 +08:00
parent fb39e6ee40
commit 8d2804d626

View File

@@ -38,6 +38,16 @@ def load_rule_payload(path: Path) -> list[str]:
return lines return lines
def _render_payload_line(payload_line: str, behavior: str) -> str:
if "," in payload_line or behavior == "classical":
return payload_line
if behavior == "ipcidr":
return f"IP-CIDR,{payload_line}"
if behavior == "domain":
return f"DOMAIN-SUFFIX,{payload_line}"
return payload_line
def _resolve_rule_lines(rule_name: str, app_config: AppConfig, client: ClientConfig) -> list[str]: def _resolve_rule_lines(rule_name: str, app_config: AppConfig, client: ClientConfig) -> list[str]:
rule = app_config.rules[rule_name] rule = app_config.rules[rule_name]
target = resolve_policy(rule.policy, client) target = resolve_policy(rule.policy, client)
@@ -97,7 +107,8 @@ def build_inline_rules(app_config: AppConfig, client: ClientConfig) -> list[str]
raise FileNotFoundError(f"Rule file missing: {rule.file}") raise FileNotFoundError(f"Rule file missing: {rule.file}")
target = resolve_policy(rule.policy, client) target = resolve_policy(rule.policy, client)
for payload_line in load_rule_payload(path): for payload_line in load_rule_payload(path):
line = f"{payload_line},{target}" rendered = _render_payload_line(payload_line, rule.behavior)
line = f"{rendered},{target}"
if rule.no_resolve: if rule.no_resolve:
line += ",no-resolve" line += ",no-resolve"
lines.append(line) lines.append(line)