46 Commits

Author SHA1 Message Date
世界 5d744adaa3 dns: Add namespace and parallel support for evaluate 2026-07-23 21:08:26 +08:00
世界 52e72736ad route: simplify rule_set matching semantics
Since b0c6762bc, every rule inside a referenced rule-set was evaluated
as if merged into the outer rule, which required tracking per-branch
group states and let outer rules and rule-set rules satisfy each
other's grouped conditions in both directions.

Restrict merging to the only designed case: a rule-set containing
exactly one non-inverted default rule is merged into the outer rule as
before. Any other rule-set now matches as an ordinary condition of the
outer rule: it matches when any of its rules matches on its own, and
its rules no longer exchange grouped match state with the outer rule
in either direction. Multiple referenced rule-sets keep OR semantics.

Flat address rule-sets such as generated geosite/geoip sets contain a
single default rule, so their behavior is unchanged. The group-state
set machinery is replaced by a single required/satisfied mask pair.

Also update the route and DNS rule docs.
2026-07-23 14:16:55 +08:00
世界 2ff294c4f4 Improve OpenVPN & OpenConnect interoperability 2026-07-21 13:08:31 +08:00
世界 84eb7a103f Allow customizing TUN DNS mode and hijack interface DNS by default 2026-07-09 11:19:16 +08:00
世界 59ad93ef52 dns: Add mDNS server 2026-07-09 11:19:16 +08:00
世界 7c722b3d50 dns: Add preferred_by rule item 2026-07-09 11:19:15 +08:00
世界 84cbca844d documentation: Fix missing update for ip_version and query_type 2026-07-09 11:17:54 +08:00
世界 ef954777d0 Add package_name_regex route, DNS and headless rule item 2026-07-09 11:17:53 +08:00
世界 c61e5820a5 Un-deprecate ip_accept_any DNS rule item 2026-07-09 11:17:51 +08:00
nekohasekai daff1623b2 Add evaluate DNS rule action and related rule items 2026-07-09 11:17:47 +08:00
世界 eaf1f5e563 documentation: Update descriptions for neighbor rules 2026-07-09 11:16:44 +08:00
世界 801505e628 Add MAC and hostname rule items 2026-07-09 11:16:41 +08:00
世界 b0c6762bc1 route: merge rule_set branches into outer rules
Treat rule_set items as merged branches instead of standalone boolean
sub-items.

Evaluate each branch inside a referenced rule-set as if it were merged
into the outer rule and keep OR semantics between branches. This lets
outer grouped fields satisfy matching groups inside a branch without
introducing a standalone outer fallback or cross-branch state union.

Keep inherited grouped state outside inverted default and logical
branches. Negated rule-set branches now evaluate !(...) against their
own conditions and only reapply the outer grouped match after negation
succeeds, so configs like outer-group && !inner-condition continue to
work.

Add regression tests for same-group merged matches, cross-group and
extra-AND failures, DNS merged-branch behaviour, and inverted merged
branches. Update the route and DNS rule docs to clarify that rule-set
branches merge into the outer rule while keeping OR semantics between
branches.
2026-03-25 14:00:29 +08:00
世界 8d8ca282a1 Add Linux WI-FI state support
Support monitoring WIFI state on Linux through:
- NetworkManager (D-Bus)
- IWD (D-Bus)
- wpa_supplicant (control socket)
- ConnMan (D-Bus)
2026-01-17 05:47:04 +08:00
世界 5be1887f92 documentation: Add interface address rule items 2026-01-17 05:44:27 +08:00
世界 4accaccf77 documentation: Fix missing ip_accept_any DNS rule option 2025-07-08 13:12:23 +08:00
世界 fa6f7d396e documentation: Outbound domain resolver 2025-07-08 13:12:15 +08:00
世界 05ea0ca00e Add network_[type/is_expensive/is_constrained] rule items 2025-01-13 15:14:29 +08:00
世界 28ec898a8c documentation: Add rule action 2025-01-13 15:14:29 +08:00
世界 467b1bbeeb documentation: Update the scheduled removal time of deprecated features 2025-01-13 15:14:29 +08:00
srk24 846777cd0c Add process_path_regex rule type 2024-10-13 13:07:02 +08:00
世界 6bebe2483b Unique rule-set names 2024-10-13 13:07:02 +08:00
世界 93cf134995 Add accept empty DNS rule option 2024-10-13 13:07:02 +08:00
世界 8a9a77a438 Add bypass_domain and search_domain platform HTTP proxy options 2024-05-23 14:57:26 +08:00
世界 da9e22b4e6 Add custom prefix support in EDNS0 client subnet options 2024-05-21 15:12:05 +08:00
世界 71d1879bd6 Fix missing rule_set_ipcidr_match_source item in DNS rules 2024-05-21 15:12:03 +08:00
世界 93ae3f7a1e Add rejected DNS response cache support 2024-05-21 15:12:03 +08:00
世界 f24a2aed7d Add support for client-subnet DNS options 2024-05-21 15:12:03 +08:00
世界 0517ceef76 Add address filter support for DNS rules 2024-05-21 15:12:02 +08:00
世界 e09a94bb9e Update documentation 2024-01-03 12:21:36 +08:00
世界 bb1ebfda83 documentation: Fix link format 2023-12-21 15:24:05 +08:00
世界 e8c4c942c0 documentation: Bump version & Refactor docs 2023-11-28 11:21:57 +08:00
世界 9bca5a517f Add fakeip support 2023-06-07 20:31:26 +08:00
世界 b3fb86d415 Accept "any" outbound in dns rule 2023-03-31 14:31:35 +08:00
世界 687b4509df Add query_type DNS rule item 2023-02-08 16:18:40 +08:00
世界 d9aa0a67d6 Fix port rule match logic 2022-09-14 22:03:26 +08:00
世界 ebf5cbf1b9 Update documentation 2022-09-10 23:31:07 +08:00
世界 f5f5cb023c Update documentation 2022-08-31 14:34:32 +08:00
世界 9f6628445e Improve ip_cidr rule 2022-08-25 22:23:26 +08:00
世界 03f457f3d0 Initial zh-CN document translation: DNS 2022-08-24 16:37:06 +08:00
世界 f51128f772 Add ip_version rule item 2022-08-16 23:47:14 +08:00
世界 0e6b4df8f1 Remove incorrect warning 2022-08-09 17:27:22 +08:00
世界 aa074a2063 Update documentation 2022-07-27 12:13:31 +08:00
世界 d1e83882e5 Add user rule item 2022-07-17 17:38:11 +08:00
世界 211d97ff8a Declare required fields in the documentation 2022-07-09 09:28:54 +08:00
世界 d6d02b9924 Add log and dns documentation 2022-07-08 18:41:18 +08:00