Commit Graph

2399 Commits

Author SHA1 Message Date
Shtorm
c307b8dc2d Add MTProxy, MASQUE, VPN, Link parser. Update AmneziaWG. Remove Tunneling 2026-04-29 22:11:30 +03:00
Shtorm
614af37bc4 Update sing-box core 2026-04-22 19:23:23 +03:00
世界
65dedd3a6f Bump version 2026-04-22 13:40:36 +08:00
世界
782c46be29 sing: Fix UoT write race 2026-04-21 18:54:52 +08:00
世界
f9bfa850c4 Hide lifecycle logs for fast operations 2026-04-21 17:15:16 +08:00
世界
8b64ae650b Fix process search skipped for TUN 2026-04-21 15:45:05 +08:00
世界
94a3e293fd Bump version 1.13.9 2026-04-20 09:49:39 +08:00
世界
24610b61c5 documentation: Remove warp ads 2026-04-20 09:49:39 +08:00
世界
97af29dc6f tun: Fix multi include/exclude interfaces 2026-04-20 09:49:39 +08:00
世界
d395680ca2 Simplify lifecycle logs 2026-04-20 09:49:39 +08:00
世界
9ba5a05020 Skip process search for non-local source addresses 2026-04-20 09:49:39 +08:00
世界
9cfb117903 Fix windows bssid matching 2026-04-20 09:49:39 +08:00
世界
2d8843103d release: fix apk package file ownership 2026-04-20 09:49:39 +08:00
世界
9d7812fbf1 sing: Fix UoT connect race 2026-04-20 00:10:46 +08:00
世界
7ee7a267b2 tun: memmod: be more resilient toward weird PE files 2026-04-19 21:54:20 +08:00
世界
e974da41aa Fix tailscale endpoint early-start close panic 2026-04-19 21:15:54 +08:00
世界
d58386fd12 fswatch: Fix close 2026-04-19 20:41:33 +08:00
世界
6c1ff4a8c1 daemon: Fix registry leak 2026-04-19 20:39:38 +08:00
世界
9e6924a3f3 sing: Fix interface finder 2026-04-19 20:38:52 +08:00
Shtorm
55a3a1e594 Update sing-box core 2026-04-17 01:10:31 +03:00
世界
ea5896ed91 Fix rdrc cache 2026-04-16 16:45:50 +08:00
世界
1de293eb14 sing: Fix udpnat2 timeout 2026-04-16 16:45:38 +08:00
世界
7f44f908d9 documentation: Fix typo 2026-04-14 16:00:47 +08:00
世界
39bfb37b83 Bump version 2026-04-14 14:33:19 +08:00
世界
0438de610f Update Go to 1.25.9 2026-04-14 14:26:59 +08:00
世界
acd176ca95 Update naiveproxy to v147.0.7727.49-1 2026-04-14 14:24:21 +08:00
世界
32f91a4faa Fix FakeIP returning error for unconfigured address family
Return SUCCESS with empty answers instead of an error when the
queried address family has no range configured. Reject configurations
where neither inet4_range nor inet6_range is set.
2026-04-14 14:15:20 +08:00
世界
41b2d51390 Bump version 2026-04-10 16:23:45 +08:00
世界
ff1b4bfcc9 tun: Fixes 2026-04-10 14:13:06 +08:00
世界
a3ebacd17c Fix tailscale crash 2026-04-10 14:09:03 +08:00
世界
b38cf87444 Fix local DNS server for Android 2026-04-10 14:08:57 +08:00
Berkay Özdemirci
0b8746a133 Fix EDNS OPT record corruption in DNS cache
The TTL computation and assignment loops treat OPT record's Hdr.Ttl
as a regular TTL, but per RFC 6891 it encodes EDNS0 metadata
(ExtRCode|Version|Flags). This corrupts cached responses causing
systemd-resolved to reject them with EDNS version 255.

Also fix pointer aliasing: storeCache() stored raw *dns.Msg pointer
so subsequent mutations by Exchange() corrupted cached data.

- Skip OPT records in all TTL loops (Exchange + loadResponse)
- Use message.Copy() in storeCache() to isolate cache from mutations
2026-04-10 14:08:24 +08:00
TargetLocked
2b1f475b3f Fix disable tcp keep alive 2026-04-10 13:29:15 +08:00
Shtorm
9bb1b847be Update sing-box core 2026-04-06 20:54:24 +03:00
世界
0b42a02292 Bump version 2026-04-06 23:09:11 +08:00
hdrover
4a2aac6bc9 Fix naive inbound padding bytes 2026-04-06 22:33:11 +08:00
世界
6c430555aa sing: Fix vectorised readv iovec length calculation
This does not seem to affect any actual paths in the sing-box.
2026-04-01 16:16:58 +08:00
世界
c782f63849 Bump version 2026-03-30 23:03:43 +08:00
世界
c5fa529f27 sing: Minor fixes 2026-03-30 22:58:11 +08:00
世界
af60ef7647 platform: Add HTTPResponse.WriteToWithProgress 2026-03-30 22:42:36 +08:00
世界
4a8ef9d5cb quic: Fix protocol client close & Sync hysteria bbr fix 2026-03-30 22:42:36 +08:00
世界
5042967836 Fix naive quic error message 2026-03-30 22:42:36 +08:00
Zhengchao Ding
a19b3a6971 fix(rpm): add vendor field to fpm config to avoid (none) vendor
Co-authored-by: Hyper <hypar@disroot.org>
2026-03-30 22:09:54 +08:00
世界
8cc97afac4 Fix WireGuard shutdown race crashing
Stop peer goroutines before closing the TUN device to prevent
RoutineSequentialReceiver from calling Write on a nil dispatcher.
2026-03-26 16:33:21 +08:00
世界
a8064cf7cd Bump version 2026-03-26 13:28:33 +08:00
世界
75f64acd9f route: Fix query_type never matching in rule_set headless rules 2026-03-26 13:26:18 +08:00
世界
fdfd0ffb07 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
世界
fcdea284e1 release: Refactor release tracks for Linux packages and Docker
Support 4 release tracks instead of 2:
- sing-box / latest (stable release)
- sing-box-beta / latest-beta (stable pre-release)
- sing-box-testing / latest-testing (testing branch)
- sing-box-oldstable / latest-oldstable (oldstable branch)

Track is detected via git branch --contains and git tag,
replacing the old version-string hyphen check.
2026-03-24 15:03:43 +08:00
世界
3564cdf07e route: formalize nested rule_set group-state semantics
Before 8bf01b7ad, nested rule-set evaluation reused the parent rule
match cache. In practice, this meant these fields leaked across nested
evaluation:

- SourceAddressMatch
- SourcePortMatch
- DestinationAddressMatch
- DestinationPortMatch
- DidMatch

That leak had two opposite effects.

First, it made included rule-sets partially behave like the docs'
"merged" semantics. For example, if an outer route rule had:

  rule_set = ["geosite-additional-!cn"]
  ip_cidr  = 104.26.10.0/24

and the inline rule-set matched `domain_suffix = speedtest.net`, the
inner match could set `DestinationAddressMatch = true` and the outer
rule would then pass its destination-address group check. This is why
some `rule_set + ip_cidr` combinations used to work.

But the same leak also polluted sibling rules and sibling rule-sets.
A branch could partially match one group, then fail later, and still
leave that group cache set for the next branch. This broke cases such
as gh-3485: with `rule_set = [test1, test2]`, `test1` could touch
destination-address cache before an AdGuard `@@` exclusion made the
whole branch fail, and `test2` would then run against dirty state.

8bf01b7ad fixed that by cloning metadata for nested rule-set/rule
evaluation and resetting the rule match cache for each branch. That
stopped sibling pollution, but it also removed the only mechanism by
which a successful nested branch could affect the parent rule's grouped
matching state.

As a result, nested rule-sets became pure boolean sub-items against the
outer rule. The previous example stopped working: the inner
`domain_suffix = speedtest.net` still matched, but the outer rule no
longer observed any destination-address-group success, so it fell
through to `final`.

This change makes the semantics explicit instead of relying on cache
side effects:

- `rule_set: ["a", "b"]` is OR
- rules inside one rule-set are OR
- each nested branch is evaluated in isolation
- failed branches contribute no grouped match state
- a successful branch contributes its grouped match state back to the
  parent rule
- grouped state from different rule-sets must not be combined together
  to satisfy one outer rule

In other words, rule-sets now behave as "OR branches whose successful
group matches merge into the outer rule", which matches the documented
intent without reintroducing cross-branch cache leakage.
2026-03-24 15:03:43 +08:00
世界
38e0832cf4 tun: Fix system stack rewriting TUN subnet destinations to loopback 2026-03-23 19:38:55 +08:00