Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
236 commits
Select commit Hold shift + click to select a range
abdaa55
Update sing
nekohasekai Jul 27, 2026
0df408d
Update sing-tun
nekohasekai Jul 27, 2026
95f2d63
Update sing-shadowtls to v0.2.1
nekohasekai Jul 27, 2026
b6e554e
Fix ACME HTTP-01 challenge for IPv6 literal addresses
nekohasekai Jul 27, 2026
cb74ad7
Fix naive slow open
nekohasekai Jul 27, 2026
61ede42
Fix stderr deprecated manager
nekohasekai Apr 23, 2026
dc4ca85
Fix tailscale start dependencies
nekohasekai Apr 28, 2026
dcfdd8a
dns: Fix DHCP reset
nekohasekai May 17, 2026
7b9439f
route: Refetch rule-set when cache restore fails
nekohasekai May 19, 2026
ee808c4
process: Fix panic when package manager is unavailable on Android
nekohasekai May 19, 2026
4056231
Fix tailscale dns
nekohasekai May 21, 2026
c8c41c2
dialer: Fix auto_detect_interface for UDP connections
nekohasekai Jul 8, 2026
79bc79e
Fix missing tun logger
nekohasekai Jul 9, 2026
d72f0ec
Fix tailscale version
nekohasekai Jul 10, 2026
3c4a5a6
Fix naive HTTP/2 connections
H-TTTTT Jul 21, 2026
9d7e9b9
Fix Tailscale 4via6 subnet routing
nekohasekai Jul 22, 2026
67a600d
Fix derp stun options
nekohasekai Jul 24, 2026
397fb4d
dns: Fix search domain expansion
nekohasekai Jul 25, 2026
cb0051d
Fix inconsistent URLTest results
nekohasekai Jul 25, 2026
1f1d6d9
Fix string type
nekohasekai Jul 25, 2026
5139104
Fix DNS route suffix matching
nekohasekai Jul 27, 2026
5153118
Strip EDNS padding from upstream DNS responses
nekohasekai Jul 27, 2026
890544e
Fix rule-set file descriptor leak
nekohasekai Jul 27, 2026
1533244
Fix UDP message ownership
nekohasekai Jul 27, 2026
62cc395
Update Go to 1.25.12
nekohasekai Jul 27, 2026
9791fa5
release: Backport workflow refactor
nekohasekai Jul 27, 2026
c9e8185
Update sing
nekohasekai Jul 27, 2026
c8f7676
Update sing-tun
nekohasekai Jul 27, 2026
dba80e6
Fix local DNS transport blocking on canceled queries
nekohasekai Jul 29, 2026
3708fa1
Bump version
nekohasekai Jul 27, 2026
2b73711
Add MAC and hostname rule items
nekohasekai Mar 3, 2026
d672188
Add Android support for MAC and hostname rule items
nekohasekai Mar 4, 2026
0b7162a
Add macOS support for MAC and hostname rule items
nekohasekai Mar 6, 2026
c533012
documentation: Update descriptions for neighbor rules
nekohasekai Mar 6, 2026
49635c7
Refactor ACME support to certificate provider
nekohasekai Mar 23, 2026
e8e0397
Add BBR profile and hop interval randomization for Hysteria2
nekohasekai Mar 30, 2026
9d1bb8d
platform: Add OOM Report & Crash Report
nekohasekai Apr 2, 2026
f3fc4f6
Also enable certificate store by default on Apple platforms
nekohasekai Apr 7, 2026
1f3ea24
Add evaluate DNS rule action and related rule items
nekohasekai Apr 7, 2026
7567043
platform: Fix set local
nekohasekai Apr 7, 2026
74bad88
Fix deprecated warning double-formatting on localized clients
nekohasekai Apr 7, 2026
e1c391c
oom-killer: Free memory on pressure notification and use gradual inte…
nekohasekai Apr 7, 2026
2a04275
tools: Network Quality & STUN
nekohasekai Apr 8, 2026
e7d85aa
platform: Fix darwin signal handler
nekohasekai Apr 9, 2026
a64e192
tools: Tailscale status
nekohasekai Apr 9, 2026
655bc5c
Revert "Also enable certificate store by default on Apple platforms"
nekohasekai Apr 9, 2026
22e035f
Fix rules lock
nekohasekai Apr 9, 2026
65490e3
Fix darwin local DNS transport
nekohasekai Apr 10, 2026
3a50793
tools: Tailscale status
nekohasekai Apr 10, 2026
dfb15d1
Un-deprecate `ip_accept_any` DNS rule item
nekohasekai Apr 10, 2026
5d7f458
documentation: Fixes
nekohasekai Apr 10, 2026
0dadc0a
Add `package_name_regex` route, DNS and headless rule item
nekohasekai Apr 10, 2026
c243929
platform: Wrap command RPC error returns with E.Cause
nekohasekai Apr 10, 2026
d5dd5f3
Fix lint errors
nekohasekai Apr 10, 2026
79a151e
Add cloudflared inbound
nekohasekai Apr 10, 2026
66c7065
documentation: Fix missing update for `ip_version` and `query_type`
nekohasekai Apr 10, 2026
b1172be
Fix stun test
nekohasekai Apr 10, 2026
2d9956c
Fix darwin cgo DNS again
nekohasekai Apr 10, 2026
ded20e5
Fix tailscale error
nekohasekai Apr 11, 2026
71e822d
Add optimistic DNS cache
nekohasekai Apr 11, 2026
5dc2f07
oom-killer: Record report before reset network
nekohasekai Apr 14, 2026
925ce1d
Refactor: HTTP clients, unified HTTP2/QUIC options, Apple engines
nekohasekai Apr 14, 2026
6fd60b1
Standardize hosts path
nekohasekai Apr 15, 2026
b9b4ade
Add TLS spoof support
nekohasekai Apr 15, 2026
cf5c22a
Fix legacy rule-set download_detour blocked by empty direct check
nekohasekai Apr 15, 2026
450ed0e
Reject pure-IP rule-set references without match_response
nekohasekai Apr 15, 2026
cb0cc8d
Fix use-after-free of pooled value buffers in bbolt Batch writes
nekohasekai Apr 15, 2026
b2a8022
Reject IP literal server name with TLS spoof
nekohasekai Apr 16, 2026
23df373
Fix macOS tlsspoof
nekohasekai Apr 17, 2026
6c698d1
Scope HTTP/2 fallback and HTTP/3 broken state per authority
nekohasekai Apr 17, 2026
5c843c3
Defer implicit default HTTP client fallback to first use
nekohasekai Apr 17, 2026
1f81feb
Strip EDNS padding from upstream DNS responses
nekohasekai Apr 17, 2026
12fc393
Fix Apple TLS metadata capture
nekohasekai Apr 18, 2026
4043e40
Fix tls-spoof
nekohasekai Apr 17, 2026
261c9b9
Add search domain support for Tailscale DNS
nekohasekai Apr 20, 2026
82476cb
Log DNS optimistic background refresh outcomes
nekohasekai Apr 21, 2026
6eb9615
Fix Tailscale search domain response name mismatch
nekohasekai Apr 21, 2026
59a77d9
Fix goroutine leak in networkquality tool
nekohasekai Apr 21, 2026
7a058db
Add ACME profile support for IP address certificates
nekohasekai Mar 26, 2026
380b7af
platform: Improve oom-killer
nekohasekai Apr 21, 2026
bf46d14
Fix darwin cgo DNS again
nekohasekai Apr 22, 2026
011ba60
Improve UDP batch support
nekohasekai Apr 24, 2026
bbcdc61
Add Windows TLS engine
nekohasekai Apr 24, 2026
d824908
Preserve comments between formatting
nekohasekai Apr 28, 2026
1c7047e
Improve oom-killer
nekohasekai Apr 28, 2026
6f65430
ssh: Add cipher, MAC, and key exchange configuration
nekohasekai Apr 28, 2026
262f27e
dns: Add timeout configuration
nekohasekai Apr 28, 2026
82f829e
Fix tailscale start dependencies
nekohasekai Apr 28, 2026
3574514
dns: Add neighbor-based hostname resolution to local server
nekohasekai Apr 29, 2026
14733ea
dns: Add preferred_by rule item
nekohasekai Apr 29, 2026
b5ff4ba
dns: Add mDNS server
nekohasekai Apr 30, 2026
65ac78b
Allow customizing TUN DNS mode and hijack interface DNS by default
nekohasekai May 2, 2026
0ce46cd
Add more spoof method
macronut Apr 29, 2026
cd94ac7
Fix reset network
nekohasekai May 5, 2026
eaa3332
Add hysteria2 realm service and support
nekohasekai May 10, 2026
2d9ffda
Update hysteria2 realm
nekohasekai May 11, 2026
5f256c9
Fix TLS server close
nekohasekai May 12, 2026
a88399b
Fix hysteria2 realm server
nekohasekai May 12, 2026
6390b6d
Fix lint errors
nekohasekai May 14, 2026
dd0f53b
Rebase wireguard-go to official
nekohasekai May 17, 2026
d892e7f
oom-killer: Remove log "OOM draft discarded"
nekohasekai May 19, 2026
4d0a13b
tailscale: Revert dialer deprecation and remove control_http_client
nekohasekai May 20, 2026
6b2d889
tailscale: Fix handle peer DNS query
nekohasekai May 20, 2026
a6f15d1
gvisor: Fix dialing to self addresses
nekohasekai May 20, 2026
8a7cac4
Fix tailscale
nekohasekai May 21, 2026
a0c3a02
tailscale: Add runtime exit node API
nekohasekai May 21, 2026
87ba251
tailscale: Expose more peer info fields
nekohasekai May 21, 2026
1db44c5
Fix tailscale dns
nekohasekai May 21, 2026
1080ee6
daemon: Add Tailssh
nekohasekai May 25, 2026
7a51512
hysteria2: Add gecko obfs
nekohasekai May 25, 2026
5129139
tools: Fix mising cleanup
nekohasekai May 26, 2026
5d4075f
tailscale: Add tailssh server
nekohasekai May 28, 2026
e5b0ed6
tailssh: fix platform SFTP session teardown
nekohasekai Jun 1, 2026
ceed8db
platform: Add tailscale device name and logout
nekohasekai Jun 2, 2026
b10d0a1
platform: Add shell support for iOS
nekohasekai Jun 10, 2026
069069f
daemon: Split host operations into ManagedService
nekohasekai Jun 11, 2026
33b35b3
Add sing-box API service
nekohasekai Jun 11, 2026
da8b8d0
tailscale: Fix auth URL not refreshed after logout
nekohasekai Jun 12, 2026
63de472
Fix group status updates broken by API service
nekohasekai Jun 13, 2026
8464c56
release: Fix apple release
nekohasekai Jun 13, 2026
e148eee
dns: Remove unused files
nekohasekai Jun 13, 2026
ff50e2e
Improve remote rule-set update
nekohasekai Jun 13, 2026
77feaef
Add dashboard support for API service
nekohasekai Jun 13, 2026
1ca7d8f
Fix remote control when Clash server is unavailable
nekohasekai Jun 15, 2026
22ffce8
Add USB/IP service
nekohasekai Jun 14, 2026
4a06897
Add USB/IP support for macOS
nekohasekai Jun 16, 2026
61960a6
documentation: Add USB/IP server and client
nekohasekai Jun 17, 2026
9c9b312
Fix Cloudflared edge discovery ignoring configured resolver
nekohasekai Jun 20, 2026
e36cc22
Add iOS jailbreak release
nekohasekai Jun 20, 2026
8c17d47
certificate: Replace platform bridge with CGO JNI
nekohasekai Jun 21, 2026
07355ed
platform: Fix missing api version check for usb/ip
nekohasekai Jun 21, 2026
2a8691c
Fix oom draft flood
nekohasekai Jun 23, 2026
2f31320
release: Fix upload ios deb
nekohasekai Jun 25, 2026
3862883
Refactor darwin local DNS to raw mDNSResponder call
nekohasekai Jun 27, 2026
45a0fe1
Write logs to oom report
nekohasekai Jun 28, 2026
35c92be
Add age support for report export
nekohasekai Jun 28, 2026
ab7315a
Improve DHCP DNS server initialize
nekohasekai Jun 28, 2026
d95b63b
Fix linux ping
nekohasekai Jun 29, 2026
4e6bf7e
tls: Fix read wait buffer sizing
nekohasekai Jul 2, 2026
b33b13a
dialer: Dial directly when only one interface is available
nekohasekai Jul 4, 2026
5ad147c
Add snell protocol
nekohasekai Jul 3, 2026
58c1e4e
Add L3 forwarding support
nekohasekai Jul 6, 2026
24bc90d
Fix local DNS transport on darwin
nekohasekai Jul 6, 2026
fee8873
Imrpove flow tracking & sniff action
nekohasekai Jul 6, 2026
529aa66
daemon: Release memory to OS on service reload
nekohasekai Jul 7, 2026
7691a3c
Add bridge outbound
nekohasekai Jul 7, 2026
c1f09ab
Improve bridge
nekohasekai Jul 8, 2026
4c70140
Add windows bridge
nekohasekai Jul 8, 2026
bfe4c33
Improve darwin bridge
nekohasekai Jul 8, 2026
61ba94a
Fix bridge MTU
nekohasekai Jul 8, 2026
362725f
Improve windivert syscall
nekohasekai Jul 8, 2026
5a03592
Fix windows bridge forwarding to connected subnets
nekohasekai Jul 8, 2026
d0eba35
Fix macOS bridge with includeAllNetworks
nekohasekai Jul 8, 2026
ae97748
Fix macOS bridge kernel panic
nekohasekai Jul 8, 2026
35e591b
Fix process and neighbor rules not matched in pre-match
nekohasekai Jul 8, 2026
9d81f89
Add hysteria2 realm ip_version and port_mapping options
nekohasekai Jul 9, 2026
e7cb63e
Add connections to OOM report
nekohasekai Jul 9, 2026
0e1a08f
Fix tailscale version
nekohasekai Jul 10, 2026
b72773e
Fix tailscale route
nekohasekai Jul 10, 2026
3a820c5
Add netns and unshare support
nekohasekai Jul 10, 2026
29826dd
Fix netns manager
nekohasekai Jul 11, 2026
7dd9c6e
windivert: Verify cached driver against embedded asset before load
nekohasekai Jul 11, 2026
b784fb7
platform: Export tester and reporter
nekohasekai Jul 11, 2026
cf2bb0d
Fix windivert open
nekohasekai Jul 12, 2026
d7800a5
bridge: Raise accept_ra to 2 when enabling IPv6 forwarding
nekohasekai Jul 12, 2026
76f633d
Fix daemon groups
nekohasekai Jul 12, 2026
4652943
platform: Add boxdd
nekohasekai Jul 13, 2026
4f1f3cf
platform: Fix daemon data
nekohasekai Jul 13, 2026
27ae59e
platform: Add http proxy support for Windows
nekohasekai Jul 13, 2026
0ddb14a
documentation: Update icon svg
nekohasekai Jul 13, 2026
3b1f525
Fix nfqueue options
nekohasekai Jul 14, 2026
badcce6
windivert: stabilize Windows driver lifecycle
nekohasekai Jul 14, 2026
bdae031
Fix SetGroupExpand race
nekohasekai Jul 14, 2026
7fc76ae
Fix tun gso check
nekohasekai Jul 14, 2026
00472ac
Fix nftables flush
nekohasekai Jul 14, 2026
6e7b187
Fix windows bridge
nekohasekai Jul 14, 2026
4a1a712
Add windows build
nekohasekai Jul 14, 2026
5869f74
boxdd: Fix log format
nekohasekai Jul 14, 2026
69eef5d
boxxx: Add update API
nekohasekai Jul 14, 2026
f5520c9
boxdd: Add custom working directory support
nekohasekai Jul 15, 2026
e883567
tailscale: support Windows SSH user sessions
nekohasekai Jul 15, 2026
4f9e460
Update windows build
nekohasekai Jul 15, 2026
6b0143f
boxdd: Add insecure mode
nekohasekai Jul 15, 2026
ec9e3b0
Fix start lifecycle
nekohasekai Jul 15, 2026
2cd66e4
platform: Fix version compare
nekohasekai Jul 16, 2026
65f2dd9
Fix oomkiller
nekohasekai Jul 16, 2026
5cfc5b3
Fix iOS brdige
nekohasekai Jul 16, 2026
0e3242f
Add multiple tags support to rule-sets
nekohasekai Jul 16, 2026
09e0d1e
boxx: Fix unsafe installation
nekohasekai Jul 16, 2026
05d65f2
refactor: New tun udpnat
nekohasekai Jul 16, 2026
24cdb81
Refactor endpoint listen
nekohasekai Jul 17, 2026
9d69125
Update Go to 1.25.12
nekohasekai Jul 17, 2026
d776901
Add openvpn and openconnect
nekohasekai Jul 17, 2026
64269b6
Fix bind control for auto redirect
nekohasekai Jul 17, 2026
74f7853
Fix tailscale detour
nekohasekai Jul 17, 2026
731ae71
Refactor endpoint in started interface
nekohasekai Jul 17, 2026
b802ccd
Refactor OpenVPN and OpenConnect endpoints
nekohasekai Jul 18, 2026
6db7ae2
Fix SSO support for anyconnect
nekohasekai Jul 18, 2026
46a643b
Refactor UDP DNS hijack
nekohasekai Jul 19, 2026
47ea515
refactor: Async DNS
nekohasekai Jul 19, 2026
1e25762
Fix DNS route suffix matching
nekohasekai Jul 19, 2026
27bc05b
boxdd: Fix linux permission
nekohasekai Jul 19, 2026
ce37c2e
Improve network reset
nekohasekai Jul 19, 2026
e1f18d0
boxdd: Implement linux http proxy
nekohasekai Jul 19, 2026
49322ef
desktop: Pin dependencies
nekohasekai Jul 19, 2026
057d8d9
Add linux desktop build
nekohasekai Jul 19, 2026
9798ec8
openconnect: Fix Fortinet SSO
nekohasekai Jul 20, 2026
b74095d
Fix wg detour
nekohasekai Jul 20, 2026
58ba8de
boxdd: Fix unsafe permission check
nekohasekai Jul 20, 2026
98bdf5a
openvpn: Fix certificate verification compatibility
nekohasekai Jul 20, 2026
e9dd68f
Fix security check message
nekohasekai Jul 20, 2026
3fe83d7
Improve OpenVPN & OpenConnect interoperability
nekohasekai Jul 21, 2026
45d0574
build: Refactor workflow
nekohasekai Jul 21, 2026
8974704
boxdd: Fix windows update
nekohasekai Jul 21, 2026
04570f8
Fix TCP DNS retry
nekohasekai Jul 21, 2026
19a08c2
Update uTLS to v1.8.7
flyzstu Jul 21, 2026
44e2c84
Update issue template for new clients
nekohasekai Jul 21, 2026
adc63a7
Add Fortinet hostcheck support
nekohasekai Jul 21, 2026
2bd154d
release: Improve release workflow
nekohasekai Jul 21, 2026
517b05b
Fix Tailscale 4via6 subnet routing
nekohasekai Jul 22, 2026
4c30cdf
dns: Cache responses with client subnet
nekohasekai Jul 22, 2026
6317c1f
dns: Probe connection reuse support for TCP transports
nekohasekai Jul 22, 2026
5d0333f
Fix Fortinet SSO again
nekohasekai Jul 22, 2026
de3a5b0
platform: Fix WIFI state on reload
nekohasekai Jul 23, 2026
cad5ef2
route: simplify rule_set matching semantics
nekohasekai Jul 23, 2026
784d299
dns: Add namespace and parallel support for evaluate
nekohasekai Jul 23, 2026
5020191
Add JSON schema support
nekohasekai Jul 24, 2026
bf5f5cd
release: Fix linux sign
nekohasekai Jul 24, 2026
70d2ac3
Add initial_path option to remote rule-sets
nekohasekai Jul 24, 2026
a5305fb
daemon: Improve URLTest
nekohasekai Jul 24, 2026
6ec8b72
Fix inconsistent URLTest results
nekohasekai Jul 25, 2026
fe06643
Fix string type
nekohasekai Jul 25, 2026
4a25be3
Fix TUN dispatcher deadlock
nekohasekai Jul 29, 2026
98910a8
Fix openvpn
nekohasekai Jul 29, 2026
1569c52
Bump version
nekohasekai Jul 27, 2026
8fb6e2d
merge: sync upstream v1.14.0-beta.3
github-actions[bot] Jul 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion clients/apple
2 changes: 1 addition & 1 deletion common/tls/std_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ func newSTDClient(ctx context.Context, logger logger.ContextLogger, serverAddres
if len(certificate) > 0 {
certPool := x509.NewCertPool()
if !certPool.AppendCertsFromPEM(certificate) {
return nil, E.New("failed to parse certificate:\n\n", certificate)
return nil, E.New("failed to parse certificate:\n\n", string(certificate))
}
tlsConfig.RootCAs = certPool
}
Expand Down
2 changes: 1 addition & 1 deletion common/tls/std_server.go
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ func (c *STDServerConfig) certificateUpdated(path string) error {
for _, certPath := range c.clientCertificatePath {
content, err := filemanager.ReadFile(c.ctx, certPath)
if err != nil {
c.logger.Error(E.Cause(err, "reload certificate from ", c.clientCertificatePath))
c.logger.Error(E.Cause(err, "reload certificate from ", certPath))
continue
}
if !clientCertificateCA.AppendCertsFromPEM(content) {
Expand Down
2 changes: 1 addition & 1 deletion common/tls/utls_client.go
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ func newUTLSClient(ctx context.Context, logger logger.ContextLogger, serverAddre
if len(certificate) > 0 {
certPool := x509.NewCertPool()
if !certPool.AppendCertsFromPEM(certificate) {
return nil, E.New("failed to parse certificate:\n\n", certificate)
return nil, E.New("failed to parse certificate:\n\n", string(certificate))
}
tlsConfig.RootCAs = certPool
}
Expand Down
8 changes: 8 additions & 0 deletions docs/changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,14 @@
icon: material/alert-decagram
---

#### 1.14.0-beta.3

* Fixes and improvements

#### 1.13.15

* Fixes and improvements

#### 1.14.0-beta.2

* Add [JSON Schema](/configuration/schema/) support **1**
Expand Down
59 changes: 28 additions & 31 deletions experimental/libbox/dns.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ import (
"github.com/sagernet/sing/common"
E "github.com/sagernet/sing/common/exceptions"
M "github.com/sagernet/sing/common/metadata"
"github.com/sagernet/sing/common/task"

mDNS "github.com/miekg/dns"
)
Expand Down Expand Up @@ -58,24 +57,23 @@ func (p *platformTransport) Exchange(ctx context.Context, message *mDNS.Msg) (*m
if err != nil {
return nil, err
}
var responseMessage *mDNS.Msg
var group task.Group
group.Append0(func(ctx context.Context) error {
err = p.iif.Exchange(response, messageBytes)
if err != nil {
return err
done := make(chan error, 1)
go func() {
exchangeErr := p.iif.Exchange(response, messageBytes)
if exchangeErr == nil {
exchangeErr = response.error
}
if response.error != nil {
return response.error
done <- exchangeErr
}()
select {
case err = <-done:
if err != nil {
return nil, err
}
responseMessage = &response.message
return nil
})
err = group.Run(ctx)
if err != nil {
return nil, err
return &response.message, nil
case <-ctx.Done():
return nil, ctx.Err()
}
return responseMessage, nil
} else {
question := message.Question[0]
var network string
Expand All @@ -87,24 +85,23 @@ func (p *platformTransport) Exchange(ctx context.Context, message *mDNS.Msg) (*m
default:
return nil, E.New("only IP queries are supported by current version of Android")
}
var responseAddrs []netip.Addr
var group task.Group
group.Append0(func(ctx context.Context) error {
err := p.iif.Lookup(response, network, question.Name)
if err != nil {
return err
done := make(chan error, 1)
go func() {
lookupErr := p.iif.Lookup(response, network, question.Name)
if lookupErr == nil {
lookupErr = response.error
}
if response.error != nil {
return response.error
done <- lookupErr
}()
select {
case err := <-done:
if err != nil {
return nil, err
}
responseAddrs = response.addresses
return nil
})
err := group.Run(ctx)
if err != nil {
return nil, err
return dns.FixedResponse(message.Id, question, response.addresses, C.DefaultDNSTTL), nil
case <-ctx.Done():
return nil, ctx.Err()
}
return dns.FixedResponse(message.Id, question, responseAddrs, C.DefaultDNSTTL), nil
}
}

Expand Down
10 changes: 5 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -43,17 +43,17 @@ require (
github.com/sagernet/netlink v0.0.0-20240612041022-b9a21c07ac6a
github.com/sagernet/nftables v0.3.0-mod.4
github.com/sagernet/quic-go v0.59.0-sing-box-mod.4
github.com/sagernet/sing v0.8.12-0.20260721063414-596db5dd6ef4
github.com/sagernet/sing v0.8.12-0.20260727093221-6a8f0ea47052
github.com/sagernet/sing-cloudflared v0.1.3-0.20260706062323-d9787e794aa3
github.com/sagernet/sing-mux v0.3.5
github.com/sagernet/sing-openconnect v0.0.0-20260722140139-e0c977659ca2
github.com/sagernet/sing-openvpn v0.0.0-20260721005523-64b754d1c277
github.com/sagernet/sing-quic v0.6.4-0.20260720125339-63fa6a7ebc31
github.com/sagernet/sing-openvpn v0.0.0-20260729104525-103eb5fe5eb6
github.com/sagernet/sing-quic v0.6.4-0.20260727030926-0b32a5074a40
github.com/sagernet/sing-shadowsocks v0.2.8
github.com/sagernet/sing-shadowsocks2 v0.2.1
github.com/sagernet/sing-shadowtls v0.2.1
github.com/sagernet/sing-snell v0.0.0-20260719094200-c43fbee0e839
github.com/sagernet/sing-tun v0.8.12-0.20260724023008-68aa7bdc2819
github.com/sagernet/sing-snell v0.0.0-20260727093646-7cb813e07b73
github.com/sagernet/sing-tun v0.8.12-0.20260729054528-2d9b8aed5fe2
github.com/sagernet/sing-usbip v0.0.0-20260616101517-efb91521eddb
github.com/sagernet/sing-vmess v0.2.8-0.20250909125414-3aed155119a1
github.com/sagernet/smux v1.5.50-sing-box-mod.1
Expand Down
22 changes: 10 additions & 12 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,6 @@ github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1 h1:CaO/zOnF8VvUfEbhRatPcwKVWamvbY
github.com/dgrijalva/jwt-go/v4 v4.0.0-preview1/go.mod h1:+hnT3ywWDTAFrW5aE+u2Sa/wT555ZqwoCS+pk3p6ry4=
github.com/dgryski/go-camellia v0.0.0-20191119043421-69a8a13fb23d h1:CPqTNIigGweVPT4CYb+OO2E6XyRKFOmvTHwWRLgCAlE=
github.com/dgryski/go-camellia v0.0.0-20191119043421-69a8a13fb23d/go.mod h1:QX5ZVULjAfZJux/W62Y91HvCh9hyW6enAwcrrv/sLj0=
github.com/dlclark/regexp2 v1.11.0 h1:G/nrcoOa7ZXlpoa/91N3X7mM3r8eIlMBBJZvsz/mxKI=
github.com/dlclark/regexp2 v1.11.0/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
github.com/dnaeon/go-vcr v1.2.0 h1:zHCHvJYTMh1N7xnV7zf1m1GPBF9Ad0Jk/whtQ1663qI=
github.com/dnaeon/go-vcr v1.2.0/go.mod h1:R4UdLID7HZT3taECzJs4YgbbH6PIGXB6W/sc5OLb6RQ=
github.com/ebitengine/purego v0.10.0 h1:QIw4xfpWT6GWTzaW5XEKy3HXoqrJGx1ijYHzTF0/ISU=
Expand Down Expand Up @@ -313,28 +311,28 @@ github.com/sagernet/nftables v0.3.0-mod.4 h1:vnOtcDYeSXv2e5RoRuGH0lrpttQFJ8iC4IC
github.com/sagernet/nftables v0.3.0-mod.4/go.mod h1:8kslHG4VvYNihcco+i6uxIX7qbT8A56T0y5q7U44ZaQ=
github.com/sagernet/quic-go v0.59.0-sing-box-mod.4 h1:6qvrUW79S+CrPwWz6cMePXohgjHoKxLo3c+MDhNwc3o=
github.com/sagernet/quic-go v0.59.0-sing-box-mod.4/go.mod h1:OqILvS182CyOol5zNNo6bguvOGgXzV459+chpRaUC+4=
github.com/sagernet/sing v0.8.12-0.20260721063414-596db5dd6ef4 h1:dIHd4IiQs0mtptfe8SdwDascDwh1w2LqDI8exoDuKeQ=
github.com/sagernet/sing v0.8.12-0.20260721063414-596db5dd6ef4/go.mod h1:olXxWQNqRW/l2Q6JI3b2Qmz8iQnIFlOeeH8bx6JhgUA=
github.com/sagernet/sing v0.8.12-0.20260727093221-6a8f0ea47052 h1:zHXIyRLtgKO1xHMOZVKJ4c+rd123RnwCPCzHOyKCYj8=
github.com/sagernet/sing v0.8.12-0.20260727093221-6a8f0ea47052/go.mod h1:olXxWQNqRW/l2Q6JI3b2Qmz8iQnIFlOeeH8bx6JhgUA=
github.com/sagernet/sing-cloudflared v0.1.3-0.20260706062323-d9787e794aa3 h1:3y6++yIa8XlDhxPkpR4p+7RUHVY2KTP9CPIGnWmOlO8=
github.com/sagernet/sing-cloudflared v0.1.3-0.20260706062323-d9787e794aa3/go.mod h1:XEqEDYRCAYLaoPjZ1ifVWJg5iWAJHL2gOAXe/PM28Cg=
github.com/sagernet/sing-mux v0.3.5 h1:RHnhVEc+SFqkrK4xMygYjDwwLhzp2Bj3lztSukONfhI=
github.com/sagernet/sing-mux v0.3.5/go.mod h1:QvlKMyNBNrQoyX4x+gq028uPbLM2XeRpWtDsWBJbFSk=
github.com/sagernet/sing-openconnect v0.0.0-20260722140139-e0c977659ca2 h1:IOzb7F/NRhAKx49+8HEsJmKrZT73EPseFouxQ6MvAOo=
github.com/sagernet/sing-openconnect v0.0.0-20260722140139-e0c977659ca2/go.mod h1:4AKZLVcvY3r54UaK2Gbnm7aN8pOwdLz+y4EP0QFZ5Eg=
github.com/sagernet/sing-openvpn v0.0.0-20260721005523-64b754d1c277 h1:4H38L3OxOx1fGEuH4n9lh/5O7XtZTgQ/1V/gdQ+b+Es=
github.com/sagernet/sing-openvpn v0.0.0-20260721005523-64b754d1c277/go.mod h1:PWX7WygD8jpwfqfaGNySXpJYTn0SOwjBI1BKHHC2+Bw=
github.com/sagernet/sing-quic v0.6.4-0.20260720125339-63fa6a7ebc31 h1:FuiTs45PaA1/f2Kj6E2QlctFBrJUUFB8QAHnV5im9c8=
github.com/sagernet/sing-quic v0.6.4-0.20260720125339-63fa6a7ebc31/go.mod h1:9k+dzGsWMttUGldBzq3dU792YHXzW6NgfbOGltnXq+0=
github.com/sagernet/sing-openvpn v0.0.0-20260729104525-103eb5fe5eb6 h1:ZAvhkor0prJ8KEX9EmTEH+gJ1WlA3ffjS8GZT6KKq9c=
github.com/sagernet/sing-openvpn v0.0.0-20260729104525-103eb5fe5eb6/go.mod h1:PWX7WygD8jpwfqfaGNySXpJYTn0SOwjBI1BKHHC2+Bw=
github.com/sagernet/sing-quic v0.6.4-0.20260727030926-0b32a5074a40 h1:HSc3AkQYFsxafCSuq3+Jdg7UZc3cPG6JVm7VPyOjn0o=
github.com/sagernet/sing-quic v0.6.4-0.20260727030926-0b32a5074a40/go.mod h1:9k+dzGsWMttUGldBzq3dU792YHXzW6NgfbOGltnXq+0=
github.com/sagernet/sing-shadowsocks v0.2.8 h1:PURj5PRoAkqeHh2ZW205RWzN9E9RtKCVCzByXruQWfE=
github.com/sagernet/sing-shadowsocks v0.2.8/go.mod h1:lo7TWEMDcN5/h5B8S0ew+r78ZODn6SwVaFhvB6H+PTI=
github.com/sagernet/sing-shadowsocks2 v0.2.1 h1:dWV9OXCeFPuYGHb6IRqlSptVnSzOelnqqs2gQ2/Qioo=
github.com/sagernet/sing-shadowsocks2 v0.2.1/go.mod h1:RnXS0lExcDAovvDeniJ4IKa2IuChrdipolPYWBv9hWQ=
github.com/sagernet/sing-shadowtls v0.2.1 h1:ZiHZdnEnP+YS73NMsxiZmIFCwNd0M4k7PkGCKNXhbaM=
github.com/sagernet/sing-shadowtls v0.2.1/go.mod h1:sWqKnGlMipCHaGsw1sTTlimyUpgzP4WP3pjhCsYt9oA=
github.com/sagernet/sing-snell v0.0.0-20260719094200-c43fbee0e839 h1:YL0oCb55moImUGvjhhVEYODGMo5i9dAf+RpmMFPCq9w=
github.com/sagernet/sing-snell v0.0.0-20260719094200-c43fbee0e839/go.mod h1:PcwzX/Xvqky0EP3kGt8OCjYb3R1pydenPHNQZcPZmXY=
github.com/sagernet/sing-tun v0.8.12-0.20260724023008-68aa7bdc2819 h1:JxzMsy4EMUsAJqKtDbWKW79NIvWfuD4ARPl5RLoMPjE=
github.com/sagernet/sing-tun v0.8.12-0.20260724023008-68aa7bdc2819/go.mod h1:BPbhYPXfcoJhQERTFf9DLEXkp2lMA8J47f892W+a/gM=
github.com/sagernet/sing-snell v0.0.0-20260727093646-7cb813e07b73 h1:Iyhoka9XutVbIhkhjn6s2Ez2AEuBG5i4KbkQKqRMsug=
github.com/sagernet/sing-snell v0.0.0-20260727093646-7cb813e07b73/go.mod h1:et8Lws4f5QbOrY65DmjevHGup3mijJkhswkto6cwciM=
github.com/sagernet/sing-tun v0.8.12-0.20260729054528-2d9b8aed5fe2 h1:dpyz3hnsYa7hyhjb/EniuH9z61jsb0LOiFDHpkQqSjk=
github.com/sagernet/sing-tun v0.8.12-0.20260729054528-2d9b8aed5fe2/go.mod h1:BPbhYPXfcoJhQERTFf9DLEXkp2lMA8J47f892W+a/gM=
github.com/sagernet/sing-usbip v0.0.0-20260616101517-efb91521eddb h1:KEMbfexD4DvrQGYWwx6r+AwH9Veh8z6cnBZmtCS2G+0=
github.com/sagernet/sing-usbip v0.0.0-20260616101517-efb91521eddb/go.mod h1:D4CnJX3MNAAANhbQUxfIRgBdnvlTEaV7h6ojedcs+pw=
github.com/sagernet/sing-vmess v0.2.8-0.20250909125414-3aed155119a1 h1:aSwUNYUkVyVvdmBSufR8/nRFonwJeKSIROxHcm5br9o=
Expand Down
114 changes: 0 additions & 114 deletions option/platform.go

This file was deleted.

2 changes: 1 addition & 1 deletion protocol/ssh/outbound.go
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ func NewOutbound(ctx context.Context, router adapter.Router, logger log.ContextL
for _, hostKey := range options.HostKey {
key, _, _, _, err := ssh.ParseAuthorizedKey([]byte(hostKey))
if err != nil {
return nil, E.New("parse host key ", key)
return nil, E.Cause(err, "parse host key: ", hostKey)
}
outbound.hostKey = append(outbound.hostKey, key)
}
Expand Down
8 changes: 4 additions & 4 deletions service/acme/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ func NewCertificateProvider(ctx context.Context, logger log.ContextLogger, tag s
case option.ACMEKeyTypeRSA4096:
keyType = certmagic.RSA4096
default:
return nil, E.New("unsupported ACME key type: ", options.KeyType)
return nil, E.New("unsupported ACME key type: ", string(options.KeyType))
}
config.KeySource = certmagic.StandardKeyGenerator{KeyType: keyType}
}
Expand Down Expand Up @@ -231,13 +231,13 @@ func newDNSSolver(dnsOptions *option.ACMEProviderDNS01ChallengeOptions, logger *
return nil, nil
}
if dnsOptions.TTL < 0 {
return nil, E.New("invalid ACME DNS01 ttl: ", dnsOptions.TTL)
return nil, E.New("invalid ACME DNS01 ttl: ", dnsOptions.TTL.Build())
}
if dnsOptions.PropagationDelay < 0 {
return nil, E.New("invalid ACME DNS01 propagation_delay: ", dnsOptions.PropagationDelay)
return nil, E.New("invalid ACME DNS01 propagation_delay: ", dnsOptions.PropagationDelay.Build())
}
if dnsOptions.PropagationTimeout < -1 {
return nil, E.New("invalid ACME DNS01 propagation_timeout: ", dnsOptions.PropagationTimeout)
return nil, E.New("invalid ACME DNS01 propagation_timeout: ", dnsOptions.PropagationTimeout.Build())
}
solver := &certmagic.DNS01Solver{
DNSManager: certmagic.DNSManager{
Expand Down
2 changes: 1 addition & 1 deletion service/origin_ca/service.go
Original file line number Diff line number Diff line change
Expand Up @@ -338,7 +338,7 @@ func (s *Service) requestCertificate(ctx context.Context) ([]byte, []byte, *tls.
}
privateKey = ecKey
default:
return nil, nil, nil, nil, E.New("unsupported Cloudflare Origin CA request type: ", s.requestType)
return nil, nil, nil, nil, E.New("unsupported Cloudflare Origin CA request type: ", string(s.requestType))
}
privateKeyDER, err := x509.MarshalPKCS8PrivateKey(privateKey)
if err != nil {
Expand Down