Changes to the cache file are collected in a write buffer and written in
one transaction when the buffer reaches buffer_size, when the OOM killer
releases memory, or when sing-box is closed. An optional flush_interval
writes the buffer periodically. Previously each DNS response, RDRC entry
and FakeIP mapping was committed in its own transaction.
Also open the database with NoFreelistSync, and mark store_rdrc and
rdrc_timeout as deprecated in the options.
- Remove `bbr_standard`, `bbr2` and `bbr2_variant` from the naive inbound
- Report injected congestion controllers with connection-wide packet numbers in quic-go
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.