-
32056092f5
test(handler/router): add router_test.go (Connector, Router, ConnectorPool, parseRouterID)
ginuerzh
2026-06-03 23:42:19 +08:00
-
9db0f07721
test(handler/router): add metadata_test.go for parseMetadata
ginuerzh
2026-06-03 23:40:08 +08:00
-
b48ef7e363
test(handler/router): add helpers_test.go with mocks and test infrastructure
ginuerzh
2026-06-03 23:38:31 +08:00
-
5608b5fa67
fix(handler/router): add break to DelConnector after successful delete
ginuerzh
2026-06-03 23:36:20 +08:00
-
ef83d839db
refactor(handler/router): extract observe.go (observeStats, checkRateLimit) from handler.go
ginuerzh
2026-06-03 23:35:19 +08:00
-
31cf571a6a
refactor(handler/router): extract conn.go (packetConn, lockWriter) from associate.go
ginuerzh
2026-06-03 23:33:27 +08:00
-
b4f39b4bcb
chore(deps): bump quic-go to 0.59.1 (security patch)
ginuerzh
2026-06-05 20:45:03 +08:00
-
-
69acf08560
Fix logger init before use it (#100)
Kebin Liu
2026-06-05 20:41:50 +08:00
-
a1582d9711
chore(deps): bump github.com/quic-go/quic-go from 0.59.0 to 0.59.1
dependabot[bot]
2026-06-03 21:16:50 +00:00
-
-
a1fddedcc3
fix(handler/relay): remove remaining Chinese comments missed in conversion
ginuerzh
2026-06-03 23:09:04 +08:00
-
d5fd62aa47
docs(handler/relay): convert all comments to English
ginuerzh
2026-06-03 23:05:08 +08:00
-
95874c53f5
fix: add status field to service list/detail APIs, unify observeStats retry pattern, fix router bugs
ginuerzh
2026-06-03 22:12:08 +08:00
-
785d52da31
feat(metrics): add CORS headers for browser-based metrics access
ginuerzh
2026-06-03 21:14:47 +08:00
-
29a5b16395
fix(handler/tunnel): respect user-supplied host in handleBind, add ingress conflict detection
ginuerzh
2026-06-03 21:14:42 +08:00
-
91920aa805
fix #866: SOCKS5 nil ptr TLSConfig in selector
ginuerzh
2026-06-03 20:17:20 +08:00
-
81db46b725
refactor(handler/tunnel): code review fixes and entrypoint subpackage extraction
ginuerzh
2026-06-02 23:51:55 +08:00
-
d432d28f81
refactor(handler/relay): split handler.go -> observe.go, fix observeStats event-loss bug (break->fallthrough)
ginuerzh
2026-06-02 23:51:19 +08:00
-
31878a72ec
docs(handler/tunnel): add architecture documentation and fix observeStats event loss
ginuerzh
2026-06-02 18:36:52 +08:00
-
e791ba47e2
refactor(handler/tunnel): split 794-line entrypoint.go into 6 files, fix 3 bugs, add 48 tests
ginuerzh
2026-06-01 22:20:43 +08:00
-
382d47ea12
fix: nil HTTP recorder ref in WebSocket goroutines, add tunnel loop detection
ginuerzh
2026-06-01 18:28:01 +08:00
-
5a09a48b2d
feat: add file upload support for file handler (issue #854)
ginuerzh
2026-05-31 22:48:17 +08:00
-
dd19e4387a
feat(tls): add rejectUnknownSNI support for TLS listeners
ginuerzh
2026-05-31 22:11:29 +08:00
-
7cf7284339
fix(hop): respect backup metadata in priority shortcut selection
ginuerzh
2026-05-31 21:32:52 +08:00
-
a9d3ffa496
fix(handler/masque): add recorder stats, idle timeout, reorder auth/DNS/200
ginuerzh
2026-05-31 21:00:00 +08:00
-
cf89192211
feat(forwarder/sniffer): add HTTP request body rewriting, deprecate rewriteBody in favor of rewriteResponseBody
ginuerzh
2026-05-31 19:46:41 +08:00
-
62ce7e189e
fix(forwarder/sniffer_http): clone response header map and sync request header to recorder
ginuerzh
2026-05-31 18:02:13 +08:00
-
722dde5cfc
fix(handler/forward): split readTimeout from pipe idleTimeout to prevent 15s download abort
ginuerzh
2026-05-31 17:05:21 +08:00
-
b8d9c79f72
fix: handle empty host in relay AddrFeature ParseFrom for bind addresses
ginuerzh
2026-05-31 16:00:14 +08:00
-
e543c0b0fd
fix(handler/http2): apply traffic limiter + stats to forward proxy path, decouple auth I/O, add idle timeout
ginuerzh
2026-05-30 20:06:56 +08:00
-
6ccaae0573
refactor(handler/http2): split handler into 3 focused files with 52 tests
ginuerzh
2026-05-30 18:01:19 +08:00
-
a33c6f4a92
test(handler/http): add 25+ tests for probe resistance, MITM, bypass, and edge cases
ginuerzh
2026-05-30 17:54:27 +08:00
-
f8ddb193cb
refactor(handler/forward/remote): split handler into 6 focused files with 41 tests
ginuerzh
2026-05-30 16:27:20 +08:00
-
32c3d33afd
refactor(handler/forward/local): split handler into 6 focused files with 40 tests at 100% coverage
ginuerzh
2026-05-30 16:09:48 +08:00
-
7723119d80
fix(loader): set logger level before registering services so -D/-DD take effect
ginuerzh
2026-05-29 00:26:00 +08:00
-
23b58ddd23
refactor(handler/http): extract Authenticator, SnifferBuilder, and normalizeRequest as testable units
ginuerzh
2026-05-29 00:14:44 +08:00
-
c246a1d4fa
feat(handler/http,http2): support comma-separated hostnames in probeResistance knock
ginuerzh
2026-05-28 23:20:27 +08:00
-
3246b39c93
refactor(handler/http): split handler monolith into 7 focused files with 96 unit tests
ginuerzh
2026-05-28 23:06:37 +08:00
-
f4be111420
fix(handler/http): host validation with port split, sniffer ownership guard, body leak, probe resistance hardening
ginuerzh
2026-05-28 21:32:06 +08:00
-
776f045896
refactor(handler/forward): extract 6 helpers from remote Handle, add 44 unit tests
ginuerzh
2026-05-28 20:40:13 +08:00
-
9eeb88e6a2
refactor(handler/forward): extract 5 helpers from Handle, add 39 unit tests
ginuerzh
2026-05-28 20:19:19 +08:00
-
19aa429bea
fix(handler/forward): add nil Router guard, log discarded sniff/pipe errors, defer sniffer alloc
ginuerzh
2026-05-27 23:05:32 +08:00
-
7e3183488b
fix(handler/file): fix deadlock, conn leak, and nil Addr; add 39 tests
ginuerzh
2026-05-27 22:49:59 +08:00
-
a2cef9639d
test(sniffing): add 20 unit tests, coverage from 34.2% to 58.9%
ginuerzh
2026-05-27 21:30:52 +08:00
-
4f526c2aee
refactor(sniffing): split sniffer monolith into focused files, extract testable helpers
ginuerzh
2026-05-27 21:21:40 +08:00
-
87b055a83b
fix(icmp): ICMP tunnel not working on Windows due to wildcard bind (#98)
ginuerzh
2026-05-27 21:02:26 +08:00
-
618cc7fd9c
fix(plugin): CloseIdleConnections silent no-op when tokenTransport wraps HTTP transport
ginuerzh
2026-05-27 20:37:14 +08:00
-
3646c23398
refactor(forwarder): extract resolveHTTPNode and resolveTLSNode helpers, add tests
ginuerzh
2026-05-26 23:15:15 +08:00
-
aba7e2a256
refactor(forwarder): split sniffer monolith into focused files, extract testable helpers
ginuerzh
2026-05-26 22:48:27 +08:00
-
92564a0c8c
fix(forwarder): ReadTimeout race, goroutine leak, PeerCertificates panic, stale error return
ginuerzh
2026-05-26 21:58:30 +08:00
-
fb0ee8ead4
refactor(matcher): replace cidranger with zero-alloc trie, migrate to netip
ginuerzh
2026-05-26 21:38:55 +08:00
-
79718ee19e
fix(handler/dns): buffer pool leak, write deadline, async error logging, EDNS0 buffer
ginuerzh
2026-05-26 21:22:19 +08:00
-
dd76e9f685
fix(handler/dns): apply readTimeout, fix async context leak, add 40 tests
ginuerzh
2026-05-26 20:55:55 +08:00
-
b3424b769e
fix(handler/api): add nil guard, propagate Shutdown error, doc comments, 20 tests
ginuerzh
2026-05-26 20:44:23 +08:00
-
1510f841c3
refactor(bypass): named decision types, consolidated pattern set, remove dead code
ginuerzh
2026-05-26 20:27:21 +08:00
-
1c07cf6394
fix(service): default nil logger, fix Events() allocation, collect Close errors
ginuerzh
2026-05-25 23:47:47 +08:00
-
aabebd047b
fix(selector): safe type assertion, clean up debug logging, add doc comments and 64 tests
ginuerzh
2026-05-25 23:38:35 +08:00
-
18f39f940b
fix(sd): add nil service guards, improve error messages, remove unused logger
ginuerzh
2026-05-25 23:04:27 +08:00
-
b7a4cb0251
fix(routing): fix wildcard host suffix matching and PathRegexp error message
ginuerzh
2026-05-25 23:03:53 +08:00
-
4443b0b964
fix(router): close httpLoader on shutdown, log parse errors, default nil logger
ginuerzh
2026-05-25 23:03:19 +08:00
-
f20e151cfa
refactor(resolver): extract preference constants and shouldReturn helper
ginuerzh
2026-05-25 21:54:54 +08:00
-
039bcc9af9
fix(resolver): fix IPv4/IPv6 fallback asymmetry, data race, and caller mutation bugs
ginuerzh
2026-05-25 21:44:58 +08:00
-
28d3ffa310
fix(resolver): fix async context leak, gRPC error swallowing, add 48 tests
ginuerzh
2026-05-25 20:52:19 +08:00
-
acce86c0e4
fix(registry): log Unregister Close errors, add doc comments and 59 unit tests
ginuerzh
2026-05-25 20:23:06 +08:00
-
b1b7500c2f
test(recorder): add 55 unit tests for file, HTTP, TCP recorders and HandlerRecorderObject
ginuerzh
2026-05-25 00:15:35 +08:00
-
64a16fafbc
fix(recorder): propagate context, handle short writes, add nil guards, idempotent Close, and doc comments
ginuerzh
2026-05-24 23:58:28 +08:00
-
689ba36e92
fix(observer): remove dead nil checks from udpConn, add unit tests
ginuerzh
2026-05-24 23:47:48 +08:00
-
7c95d40e05
fix(observer): add nil guards, fix resource leak, silent event drops, and missing doc comments
ginuerzh
2026-05-24 23:13:52 +08:00
-
bc3d12ec2c
fix(metrics): add doc comments, fix labels mutation and nil returns, add idempotent Close, add nil guards, add tests
ginuerzh
2026-05-24 22:50:41 +08:00
-
64f9a048f8
feat(limiter/traffic): add burst support, dropped-packet counters, and cache fixes
ginuerzh
2026-05-24 21:52:02 +08:00
-
a9d94e7009
fix(metadata): nil-Metadata from NewMetadata(nil), missing float32 in GetFloat; add doc comments and tests
ginuerzh
2026-05-24 20:59:30 +08:00
-
dc99f4731f
docs(limiter/traffic): add doc comments, unit tests
ginuerzh
2026-05-24 20:54:34 +08:00
-
e9372ea44a
fix(limiter/traffic): infinite Write loop on zero burst, missing httpLoader.Close, stale reload values, ignored WaitN error, silent UDP drops, SplitHostPort fallback
ginuerzh
2026-05-24 20:20:01 +08:00
-
9bbd7da526
fix(limiter/rate): short-circuit Allow on denial, add missing httpLoader.Close, doc comments, tests
ginuerzh
2026-05-24 20:09:26 +08:00
-
05fe690f67
test(limiter/conn): add unit tests for conn limiter and wrappers
ginuerzh
2026-05-24 19:38:54 +08:00
-
fa708f4b5f
docs(limiter/conn): add doc comments, fix nil guards and missing Close
ginuerzh
2026-05-24 19:38:07 +08:00
-
0e96f602fa
fix(matcher,plugin): case-insensitive matching, port accumulation, nil guards, doc comments
ginuerzh
2026-05-24 18:18:42 +08:00
-
51455da96f
fix(loader): wire context into HTTP request, guard nil opts in Redis list/hash
ginuerzh
2026-05-24 18:04:02 +08:00
-
b991baaf72
fix(io,tunnel): nil deref in RecorderObjectFromContext, CloseRead checked Writer, SetReadDeadline no unwrap
ginuerzh
2026-05-24 17:51:16 +08:00
-
501051ce4d
fix(ingress): nil deref in parseRules, missing httpLoader.Close, swallowed SetRule error
ginuerzh
2026-05-24 17:27:17 +08:00
-
011759d888
docs(hosts,hop): add doc comments, fix missing httpLoader.Close, accumulate reload errors
ginuerzh
2026-05-24 16:00:53 +08:00
-
419f4c4c73
docs(ctx): add doc comments, remove dead WithContext interface, simplify HashFromContext
ginuerzh
2026-05-24 14:26:45 +08:00
-
4efb4b9974
fix(direct): guard nil dialer and nil logger in Connect, add doc comments
ginuerzh
2026-05-24 14:19:08 +08:00
-
effba3b690
docs(parsing): add package and symbol doc comments
ginuerzh
2026-05-24 13:58:37 +08:00
-
2b1e4ca3a7
test(parsing): add 229 unit tests across 18 config/parsing packages
ginuerzh
2026-05-24 13:34:33 +08:00
-
9febb23bc9
fix(config): stop mutating shared config structs during parsing
ginuerzh
2026-05-24 12:56:54 +08:00
-
8390ccadab
test(config): add unit tests for loader, doc comments, fix fmt.Errorf misuse
ginuerzh
2026-05-24 12:36:51 +08:00
-
82e7e50120
fix(config): nil deref on Load, SoMark/Metadata gating, netns copy-paste bug, and partial-reg-failure side effects
ginuerzh
2026-05-24 10:15:37 +08:00
-
5a838a7d47
fix(dtls): upgrade pion/dtls v2.2.6 to v3.1.1 fixing CVE-2026-26014
ginuerzh
2026-05-23 18:48:21 +08:00
-
982ffa8149
test(cmd): add unit tests achieving 93.8% coverage
ginuerzh
2026-05-23 18:36:24 +08:00
-
1f62219c1a
docs(cmd): add package and symbol doc comments
ginuerzh
2026-05-23 18:14:05 +08:00
-
ee57a383c5
fix(cmd): shallow-copy leaks in node/service expansion, inconsistent auth priority
ginuerzh
2026-05-23 17:44:39 +08:00
-
c59566d96f
test(chain): add unit tests achieving 86.7% coverage
ginuerzh
2026-05-23 17:17:38 +08:00
-
c7f58a400b
docs(chain): add package and symbol doc comments
ginuerzh
2026-05-23 16:36:47 +08:00
-
569572d6f7
fix(chain): Copy returns wrong pointer, connection leaks in Connect/Handshake, deferred cancel accumulation in retry loops
ginuerzh
2026-05-23 16:30:53 +08:00
-
d015378654
test(bypass): add unit tests achieving 96.4% total coverage
ginuerzh
2026-05-23 16:04:30 +08:00
-
bf4af78ebf
docs(bypass): add package and symbol doc comments
ginuerzh
2026-05-23 15:55:52 +08:00
-
54ca9161f7
fix(bypass): httpLoader.Close leak, httpPlugin fail-closed, missing Close method
ginuerzh
2026-05-23 15:52:22 +08:00
-
e99ef1c951
test(auth): add unit tests achieving 100% coverage for core, 100% for gRPC plugin, 96.6% for HTTP plugin
ginuerzh
2026-05-22 22:59:30 +08:00
-
91cae5bdeb
fix(auth): redisLoader copy-paste bug, httpLoader.Close leak, reload data wipe, silent parse errors
ginuerzh
2026-05-22 22:35:55 +08:00
-
3f73c82d00
fix(ss): address review findings for PR #96 — nil guards, resource leaks, dead code
ginuerzh
2026-05-22 21:40:33 +08:00