Commit Graph

  • 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 v0.10.9 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 v0.10.8 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) v0.10.7 ginuerzh 2026-05-31 22:48:17 +08:00
  • dd19e4387a feat(tls): add rejectUnknownSNI support for TLS listeners v0.10.6 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 v0.10.5 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 v0.10.4 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 v0.10.3 ginuerzh 2026-05-29 00:26:00 +08:00
  • 23b58ddd23 refactor(handler/http): extract Authenticator, SnifferBuilder, and normalizeRequest as testable units v0.10.2 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 v0.10.1 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
  • 5433ca580c Merge remote-tracking branch 'origin/pr/96' ginuerzh 2026-05-22 21:07:43 +08:00
  • 0c37224530 test(admission): add unit tests achieving 100% coverage for wrapper, 97.6% for core, 96.4% for plugin ginuerzh 2026-05-22 19:03:47 +08:00
  • b9d74c1b8e docs(admission): add package and symbol doc comments ginuerzh 2026-05-22 17:19:48 +08:00
  • 174bc082d1 fix(tunnel): data race in CloseOnIdle and goroutine leak in sniffingWebsocketFrame ginuerzh 2026-05-22 16:31:37 +08:00
  • ed93d60004 fix(admission): use client network, fail-open on nil gRPC client, close http resources ginuerzh 2026-05-22 15:58:24 +08:00
  • 3c8995027a adapt newest go-shadowsocks2 lib kLiHz 2026-04-15 07:00:21 +08:00
  • 70dee081a4 chore(deps): bump Go 1.26.3, update gosocks4/5, plugin, relay, tls-dissector v0.10.0 ginuerzh 2026-05-21 22:59:12 +08:00
  • 01a2bbaa11 fix(masque): address review findings for PR #76 ginuerzh 2026-05-21 22:36:30 +08:00
  • 66b53580af merge: PR #76 — MASQUE CONNECT-UDP and CONNECT-TCP support (RFC 9298/9114) ginuerzh 2026-05-21 22:50:23 +08:00
  • 8435716166 merge: PR #93 — configurable TCP keepalives for all TCP-based listeners and dialers ginuerzh 2026-05-21 21:47:15 +08:00
  • 3402418573 merge: PR #92 — make pipe idle timeout configurable via idleTimeout metadata ginuerzh 2026-05-21 21:38:32 +08:00
  • 238a0b95b7 feat: upgrade core to v0.4.0, pass network to admission, add dial options ginuerzh 2026-05-21 21:26:49 +08:00