Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
107 commits
Select commit Hold shift + click to select a range
08faa82
Add concurrency control and pipelining for DNS handling
Feb 3, 2026
8d1ea12
fix: validate DNS payload length and handle nil options in DnsController
Feb 3, 2026
058e72f
control: optimize DNS concurrency and connection lifecycle
Feb 13, 2026
be5b6e9
refactor: improve UDP task queue management and enhance test coverage
Feb 14, 2026
d7f6b0c
feat(sniffing): add IsLikelyQuicInitialPacket function for quick QUIC…
Feb 15, 2026
c0d7803
fix: enhance connection handling and add tests for timeout scenarios
Feb 15, 2026
e6e24df
feat(dns): implement DNS forwarder fallback mechanism and add tests f…
Feb 15, 2026
0341673
chore: remove deprecated configuration file and clean up unused settings
Feb 15, 2026
138be60
chore: update changelog with unreleased features, bug fixes, and tests
Feb 15, 2026
fd3d0fa
Merge branch 'main' into optimize/code-quality-fixes
olicesx Feb 15, 2026
c7460ed
feat(pool): enhance concurrency handling with create mutex management
Feb 15, 2026
e8c5b16
fix(dns): address PR936 review feedback on response safety and cache …
Feb 15, 2026
a248f8d
control: shard udp pools and switch ttl to janitor
Feb 16, 2026
1041fa9
control/dns: bypass singleflight on cache hit and reduce hot-path ove…
Feb 16, 2026
0ee51f3
optimize geodata expansion cache and reduce DNS rule retention
Feb 16, 2026
72c13f9
feat: wire local outbound with ss2022 protocol support
Feb 16, 2026
5a114fd
fix: update outbound module reference to new repository location
Feb 16, 2026
9e3abaa
refactor: comment out SS2022 protocol import and replace directive fo…
Feb 16, 2026
688b271
fix(dns,ci): remove invalid kernel-test input and harden dns hot paths
Feb 16, 2026
e70ba5d
feat(ss2022): finalize outbound pin and add matrix coverage
Feb 16, 2026
81f0007
fix(test): stabilize full regression and config marshal round-trip
Feb 16, 2026
08b66be
fix(dns): tolerate stale UDP DNS responses
Feb 16, 2026
489c3d3
fix(control): restore serialized UDP task scheduling
Feb 16, 2026
736b65a
fix(dns): remove singleflight cache bypass path
Feb 16, 2026
15017dc
perf(control): streamline UdpTaskPool hot path
Feb 16, 2026
28c95c9
perf(control): optimize IPv4 hash and DNS cache hot path
Feb 16, 2026
b92e099
perf(dns): reduce unnecessary wait in dual-stack preference path
Feb 17, 2026
4144718
perf(dns): trim avoidable waiting in hot paths
Feb 17, 2026
1d327fb
fix(dialer): preserve alive state when health check is skipped
Feb 17, 2026
e738ce9
test(dialer): cover skip-check avalanche prevention semantics
Feb 17, 2026
b2ed4d3
test(dialer): harden anti-cascade health-check coverage
Feb 17, 2026
ed4ad1d
perf(control): deduplicate real-domain probes in dial target selection
Feb 17, 2026
05d3a60
perf(control,dns): implement P0/P1 no-regret optimizations
Feb 17, 2026
e9815c1
perf(control): reduce domain-probe blocking on web request path
Feb 17, 2026
f0a1de5
perf(control): avoid first-hit page stall with async domain probe warmup
Feb 17, 2026
d78b85b
perf(dns): add non-blocking cache janitors and idle forwarder eviction
Feb 17, 2026
99b8230
feat(control): implement non-blocking task queue with overflow handli…
Feb 17, 2026
a795323
refactor(control): optimize memory alignment and improve task queue m…
Feb 17, 2026
5d3d838
perf(dns): add qtype string cache to reduce allocations in DNS query …
Feb 17, 2026
a3bf927
chore: update outbound to latest commit with ss/ss2022 optimizations
Feb 17, 2026
bef4d10
refactor(control): optimize DNS parameters for improved performance a…
Feb 18, 2026
7b4ecfd
refactor(control): enhance dialSend function to accept responseWriter…
Feb 18, 2026
e4405e8
refactor(control): enhance Close methods to prevent memory leaks and …
Feb 18, 2026
593afbb
feat(control): implement dead flag for UdpEndpoint to manage endpoint…
Feb 18, 2026
a4cc8a5
refactor(control): optimize DNS cache with pre-packed responses for i…
Feb 18, 2026
5c3df8e
refactor(control): optimize DNS cache performance with atomic deadlin…
Feb 18, 2026
760f564
refactor: replace context.TODO() with proper context propagation
Feb 19, 2026
02c4b6d
refactor(control): improve context handling for connection lifecycle …
Feb 19, 2026
0f8a44d
refactor(control): enhance routing tuple handling for UDP and TCP con…
Feb 19, 2026
03b7dc3
Refactor code structure for improved readability and maintainability
Feb 19, 2026
7b0d825
refactor(control): optimize cache handling and add latency testing fo…
Feb 19, 2026
8828b24
fix(dns): improve cache hit logging for CI compatibility
Feb 19, 2026
b9aa600
refactor(control): remove async route updater and optimize BPF update…
Feb 20, 2026
617603f
Enhance DNS Cache Tests: Update TTL Refresh Logic and Add Memory Leak…
Feb 20, 2026
bccfc50
fix: prevent UdpTaskPool convoy goroutine leak
Feb 20, 2026
61920ae
fix: prevent UdpTaskPool convoy goroutine leak
Feb 20, 2026
ee0b86e
feat(bpf): optimize UDP timeout with DNS-specific 17s expiry
Feb 20, 2026
542b282
perf(dns): optimize cache with Copy-on-Write for lock-free reads
Feb 20, 2026
3aa924c
fix(dns): reorder request handling to prioritize reject rules over cache
Feb 20, 2026
106014b
fix(dns): enhance debug logging for cache hits with destination address
Feb 20, 2026
fc49453
feat(cache): implement optimistic caching to improve hit rate and red…
Feb 20, 2026
a48be8c
feat(dns): add optimistic cache TTL and max cache size configuration …
Feb 21, 2026
1649a9d
Merge branch 'main' into optimize/code-quality-fixes
MarksonHon Feb 21, 2026
8d71000
chore: update outbound dependency with performance optimizations
Feb 21, 2026
4452b25
feat(tests): add performance benchmarks for cache eviction and sortin…
Feb 21, 2026
7a65922
perf: integrate UDP cipher cache and TCP splice optimizations
Feb 21, 2026
0bc2b50
fix: correct outbound dependency pseudo-version timestamp
Feb 21, 2026
2d73b9c
chore: update outbound dependency with trojan password hash cache opt…
Feb 21, 2026
de65f12
chore: update outbound dependency to complete optimizations branch
Feb 21, 2026
7a0b778
chore: update artifact upload name to include .zip extension and remo…
Feb 21, 2026
67444aa
perf(udp): increase task queue length from 128 to 4096
Feb 22, 2026
510e0a9
perf(bpf): comprehensive eBPF optimizations (P0, P1, Plan A, Plan B)
Feb 22, 2026
288c867
style(bpf): fix code style issues in tproxy.c
Feb 22, 2026
348514f
fix(bpf): disable LPM cache to fix MacMismatch test
Feb 22, 2026
b4e4b96
feat(bpf): re-enable LPM cache for production with test isolation
Feb 23, 2026
7c2f407
fix(bpf): resolve lint BRACES warning for LPM cache code
Feb 23, 2026
594f449
feat(dns): optimize DNS caching with async write and lock-free upstre…
Feb 23, 2026
56ce1d0
chore: update outbound dependency to af16289542d0
Feb 23, 2026
5138932
fix: replace vulnerable archiver/v3 with modern archives library
Feb 23, 2026
8c9bc13
ci: upgrade to Go 1.26 with optimization flags
Feb 23, 2026
80b9592
ci: manually install Go 1.26 (actions/setup-go not supported)
Feb 23, 2026
f87dc0e
fix(ci): restore dns-resolver config for LVH VMs
Feb 23, 2026
a8b9cec
feat: implement asynchronous BPF updates with improved cache eviction…
Feb 23, 2026
6aff7b0
fix(deps): update outbound to fix nil ecdheKey error with utls v1.8.2
Feb 23, 2026
3f7aeac
fix(wan): fix auto-detection of WAN interface with netlink v1.3.1+
Feb 23, 2026
2853ffa
perf(go): remove runtimefreegc from GOEXPERIMENT to reduce CPU overhead
Feb 24, 2026
589b721
perf(go): further optimize GOEXPERIMENT by removing redundant flags
Feb 24, 2026
cb4b8e7
fix(deps): update outbound dependency to latest version
Feb 24, 2026
46d520f
fix(deps): update outbound dependency to use ss2022-fix version and e…
Feb 24, 2026
2246fbe
style(bpf): fix checkpatch warnings in tproxy.c
Feb 24, 2026
52b392d
Add comprehensive tests for DNS fast path functionality
Feb 24, 2026
05ede66
style(tproxy): simplify debug print statements for DNS cache skipping
Feb 24, 2026
ad8d1f5
refactor(tproxy): optimize UDP handling and update conntrack logic fo…
Feb 24, 2026
c97c813
style: improve code comments for clarity and performance
Feb 25, 2026
a51fb85
fix(go.mod, go.sum): update outbound dependency to latest version
Feb 25, 2026
41d20f2
refactor(control): optimize UDP handling for QUIC packets and enhance…
Feb 25, 2026
e577639
fix(deps): update quic-go and outbound dependencies to latest versions
Feb 25, 2026
c230acb
feat(control): refresh TTL on WriteTo for active UDP connections and …
Feb 25, 2026
ce466c2
feat(connectivity): implement worker pool for connectivity checks and…
Feb 25, 2026
6f26aaa
feat(metrics): add endpoint server and phase1 gauge collectors
MaurUppi Feb 22, 2026
0dcd072
docs(config): quote endpoint listen address example
MaurUppi Feb 22, 2026
a5e4d6b
feat(metrics): implement phase2 counters and histograms
MaurUppi Feb 22, 2026
2798f14
fix(metrics): correct dns concurrency in-use gauge semantics
MaurUppi Feb 22, 2026
4ac6e2e
docs(metrics): add Grafana dashboard template JSON
MaurUppi Feb 23, 2026
7f5fbdd
test(metrics): verify all collector descriptors are exposed
MaurUppi Feb 23, 2026
7b5886e
feat(metrics): validate endpoint TLS file permissions
MaurUppi Feb 23, 2026
186599a
fix(metrics): validate endpoint TLS files before control plane init
MaurUppi Feb 23, 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
25 changes: 19 additions & 6 deletions .github/workflows/kernel-test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,17 +17,30 @@ jobs:
steps:
- uses: actions/checkout@v4

- name: Set up Go
uses: actions/setup-go@v5
- name: Set up Go 1.26
run: |
wget -q https://go.dev/dl/go1.26.0.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.26.0.linux-amd64.tar.gz
echo "/usr/local/go/bin" >> $GITHUB_PATH
echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV
echo "GOCACHE=$(go env GOCACHE)" >> $GITHUB_ENV

- name: Go cache
uses: actions/cache@v4
with:
cache-dependency-path: |
go.mod
go.sum
go-version: '1.24'
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-

- name: Generate and build
run: |
git submodule update --init
# Go 1.26 optimization: newinliner and simd (loopvar is automatic with go 1.26, arenas requires code changes)
export GOEXPERIMENT="newinliner,simd"
make GOFLAGS="-buildvcs=false" CC=clang

- name: Store executable
Expand Down
24 changes: 18 additions & 6 deletions .github/workflows/prerelease.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,23 @@ jobs:
echo "ASSET_NAME=$_NAME" >> $GITHUB_OUTPUT
echo "ASSET_NAME=$_NAME" >> $GITHUB_ENV

- name: Set up Go
uses: actions/setup-go@v5
- name: Set up Go 1.26
run: |
wget -q https://go.dev/dl/go1.26.0.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.26.0.linux-amd64.tar.gz
echo "/usr/local/go/bin" >> $GITHUB_PATH
echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV

- name: Go cache
uses: actions/cache@v4
with:
cache-dependency-path: |
go.mod
go.sum
go-version: '1.24'
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-

- name: Install Dependencies
run: |
Expand All @@ -104,6 +114,8 @@ jobs:
run: |
export CGO_ENABLED=0
export GOFLAGS="-trimpath -modcacherw"
# Go 1.26 optimization: newinliner and simd (loopvar is automatic with go 1.26, arenas requires code changes)
export GOEXPERIMENT="newinliner,simd"
export OUTPUT=pkgdir/usr/bin/dae
export VERSION=${{ env.VERSION }}
export CLANG=clang-15
Expand Down
24 changes: 18 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,23 @@ jobs:
echo "ASSET_NAME=$_NAME" >> $GITHUB_OUTPUT
echo "ASSET_NAME=$_NAME" >> $GITHUB_ENV

- name: Set up Go
uses: actions/setup-go@v5
- name: Set up Go 1.26
run: |
wget -q https://go.dev/dl/go1.26.0.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.26.0.linux-amd64.tar.gz
echo "/usr/local/go/bin" >> $GITHUB_PATH
echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV

- name: Go cache
uses: actions/cache@v4
with:
cache-dependency-path: |
go.mod
go.sum
go-version: '1.24'
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-

- name: Install Dependencies
run: |
Expand All @@ -104,6 +114,8 @@ jobs:
run: |
export CGO_ENABLED=0
export GOFLAGS="-trimpath -modcacherw"
# Go 1.26 optimization: newinliner and simd (loopvar is automatic with go 1.26, arenas requires code changes)
export GOEXPERIMENT="newinliner,simd"
export OUTPUT=pkgdir/usr/bin/dae
export VERSION=${{ env.VERSION }}
export CLANG=clang-15
Expand Down
26 changes: 19 additions & 7 deletions .github/workflows/seed-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,13 +96,23 @@ jobs:
echo "ASSET_NAME=$_NAME" >> $GITHUB_OUTPUT
echo "ASSET_NAME=$_NAME" >> $GITHUB_ENV

- name: Set up Go
uses: actions/setup-go@v5
- name: Set up Go 1.26
run: |
wget -q https://go.dev/dl/go1.26.0.linux-amd64.tar.gz
sudo rm -rf /usr/local/go
sudo tar -C /usr/local -xzf go1.26.0.linux-amd64.tar.gz
echo "/usr/local/go/bin" >> $GITHUB_PATH
echo "GOPATH=$(go env GOPATH)" >> $GITHUB_ENV

- name: Go cache
uses: actions/cache@v4
with:
cache-dependency-path: |
go.mod
go.sum
go-version: '1.24'
path: |
~/.cache/go-build
~/go/pkg/mod
key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
restore-keys: |
${{ runner.os }}-go-

- name: Install Dependencies
run: |
Expand All @@ -120,6 +130,8 @@ jobs:
run: |
mkdir -p ./build/
export GOFLAGS="-trimpath -modcacherw"
# Go 1.26 optimization: newinliner and simd (loopvar is automatic with go 1.26, arenas requires code changes)
export GOEXPERIMENT="newinliner,simd"
export OUTPUT=build/dae-$ASSET_NAME
export VERSION=${{ steps.get_version.outputs.VERSION }}
export CLANG=clang-15
Expand All @@ -137,7 +149,7 @@ jobs:
- name: Upload files to Artifacts
uses: actions/upload-artifact@v4
with:
name: dae-${{ steps.get_filename.outputs.ASSET_NAME }}
name: dae-${{ steps.get_filename.outputs.ASSET_NAME }}.zip
path: build/*

- name: Report result
Expand Down
Loading