Commit Graph

  • c962805818 fix(handler/tun): end a p2p dial when the echoes stop master v0.26.4 ginuerzh 2026-10-17 11:09:25 +00:00
  • cd1aabd1cc fix(handler/tun): name each unrouted window after the miss that opened it v0.26.3 ginuerzh 2026-10-16 06:29:07 +00:00
  • 88a68f51c8 fix(handler/tun): refresh the p2p registration on an interval ginuerzh 2026-10-16 06:29:07 +00:00
  • 22eb86d08e test(p2p): sync SupportedDialer test with the widened whitelist ginuerzh 2026-10-14 01:56:32 +00:00
  • a44625fcb7 test(metrics/wrapper): enable metrics where wrapping is asserted ginuerzh 2026-10-14 01:56:32 +00:00
  • 92272e0bb4 fix(handler/dns): stop dropping nameservers with a port ginuerzh 2026-10-14 01:56:16 +00:00
  • 993419d845 fix(handler/tun): guard every packet classifier against an empty buffer v0.26.2 ginuerzh 2026-10-13 14:12:50 +00:00
  • 8d253dcd88 fix(logger): rotate a file log that names no rotation ginuerzh 2026-10-13 02:40:19 +00:00
  • 49c998ee45 fix(service): keep accepting after a conn limiter rejection ginuerzh 2026-10-11 10:26:15 +00:00
  • 0954e57dcb fix(redirect/tcp): forward protocols the sniffer does not handle ginuerzh 2026-10-11 10:15:11 +00:00
  • 1d0b6de411 feat(handler/tun): log head bytes of dropped non-IP frames ginuerzhandClaude Opus 4.8 2026-10-11 08:14:30 +00:00
  • 4f143aa694 fix(tun): drop non-IP frames at the hub instead of writing them to the device v0.26.1 ginuerzh 2026-10-11 02:30:15 +00:00
  • a654aee7af feat(stats): the hub's LAN routing counters v0.26.0 sdd/wisper-lan-routing ginuerzh 2026-10-09 13:31:47 +00:00
  • c2c78f3279 feat(tun): install prefix routes into the p2p handler ginuerzh 2026-10-09 11:01:04 +00:00
  • 9e3ce7cb68 fix(tun): gate prefix routes on the authenticated stream peer ginuerzh 2026-10-09 07:18:54 +00:00
  • bb682a90c9 fix(tun): resolve a prefix route's requester from the packet source ginuerzh 2026-10-09 06:57:23 +00:00
  • be86cfef74 feat(tun): route hub packets by prefix after exact match ginuerzh 2026-10-09 06:48:08 +00:00
  • 640e239280 feat(tun): relay spoke-to-spoke packets directly between peers v0.25.0 ginuerzh 2026-10-07 11:26:09 +00:00
  • 98f64ea13d feat(tun): drop p2p stream on refused registration, bound first-inbound wait v0.24.0 ginuerzh 2026-10-07 09:28:32 +00:00
  • 295a2c2296 docs: add tun device probe implementation plan v0.23.0 ginuerzh 2026-10-07 05:07:13 +00:00
  • 1d42c2ec66 feat(tun): add device write-side self-probe ginuerzh 2026-10-07 05:07:13 +00:00
  • 3e533c61c7 Merge pull request #126: emit periodic session snapshots and byte deltas v0.22.0 ginuerzh 2026-10-07 02:08:41 +00:00
  • 89188536d3 Merge pull request #133: let concurrent redials converge on one session ginuerzh 2026-10-07 01:47:38 +00:00
  • 239da867c3 Merge pull request #132: authorize every request against the bypass ginuerzh 2026-10-07 01:43:22 +00:00
  • 17909c4f95 fix(nodes): explicit reference check, trim lookup, deep-copy global definitions ginuerzh 2026-10-07 01:36:45 +00:00
  • 8f6a725e7e Merge pull request #130: Global nodes registry for reusing nodes across hops ginuerzh 2026-10-07 01:30:30 +00:00
  • 312187d3d8 test(bypass): cover empty whitelist bypass-all after #129 ginuerzh 2026-10-07 01:22:47 +00:00
  • bacaa9af89 Merge pull request #129 from iBug/bypass ginuerzh 2026-10-07 01:21:06 +00:00
  • a939758583 fix(tun): survive oversized packets without panic or stream teardown ginuerzh 2026-10-07 01:19:06 +00:00
  • 9ec8bdbfeb fix(tun): summarize unrouted-packet floods; log peer stream lifetimes ginuerzh 2026-10-07 01:18:38 +00:00
  • 4bbf81c9f4 feat(p2p): let a chain node ask the tunnel for a network v0.21.0 ginuerzh 2026-10-06 00:36:49 +08:00
  • 6911ecd304 fix(mtls,mtcp,mws): let concurrent redials converge on one session lueyoungandClaude Opus 5.5 2026-10-04 08:48:41 -04:00
  • 429c6a6199 fix(tun): drop keepalive frames from the client read loop v0.20.0 ginuerzh 2026-10-04 01:51:14 +00:00
  • 1e17b38512 docs(tun): correct a stale comment on the p2p hub's authorizer ginuerzhandClaude Opus 4.8 2026-10-03 23:53:59 +00:00
  • d2678b8f5f feat(tun): the p2p hub authorizes addresses instead of credentials ginuerzh 2026-10-03 22:57:58 +00:00
  • 3d49aef879 feat(tun): let a hub decide which addresses a peer may claim ginuerzh 2026-10-03 17:10:21 +00:00
  • dc9c7444b9 sniffing,forwarder: authorize every request against the bypass Mike-7777777 2026-10-03 18:46:11 +02:00
  • f1cd7c945a tun: the registration handshake is not a keepalive option v0.19.5 ginuerzh 2026-10-03 22:45:29 +08:00
  • bc137fbd83 relay,socks: one reverse-tunnel datagram frame per write v0.19.4 ginuerzh 2026-10-03 15:32:38 +08:00
  • c67b2ec1d2 feat: Global nodes registry for reusing nodes across hops iBug 2026-10-02 22:22:32 +08:00
  • 8787aff108 tun: a handler that owns a p2p hub and bridges streams into it ginuerzh 2026-10-02 20:05:07 +08:00
  • 6e84d375c1 tun: one assertion set against both hubs, so a spoke cannot tell them apart ginuerzh 2026-10-02 19:14:20 +08:00
  • e95b830670 tun: a p2p hub reads the device once and locks every write to it ginuerzh 2026-10-02 17:56:32 +08:00
  • 64b14930b3 tun: the socket server keeps its behavior, on the shared router ginuerzh 2026-10-02 16:36:26 +08:00
  • 70b52694eb tun: the route table holds a name, not an address ginuerzhandClaude Opus 4.8 2026-10-02 15:04:36 +08:00
  • 8683da6a65 mux: a stream's deadline must not reach the shared session conn ginuerzhandClaude Opus 4.8 2026-10-02 12:44:14 +08:00
  • 2306f45bf9 service: a closed listener is not a failure to warn about v0.19.3 ginuerzh 2026-10-01 14:28:33 +08:00
  • 85c257ad65 service,handler/tun: a deliberate stop is not an error v0.19.2 ginuerzh 2026-10-01 13:28:40 +08:00
  • ec4800293d config/parsing/logger: say when a log file has no rotation v0.19.1 ginuerzh 2026-09-29 16:18:39 +08:00
  • 1fadb8fe38 config/parsing/logger: a log file that cannot be opened is not fatal ginuerzh 2026-09-29 16:03:21 +08:00
  • 660af7ce59 feat(bypass): Make network respect whitelist iBug 2026-09-26 22:00:37 +08:00
  • ce290f9143 feat(listener/tun): adopt a host-provided device fd on Android v0.19.0 ginuerzh 2026-09-24 15:56:46 +08:00
  • 1776e1a4ef p2p: rename TunnelProvider to Tunnel and OpenTunnelStream to Dial v0.18.0 ginuerzh 2026-09-22 15:17:10 +08:00
  • a9cc544470 docs: widen the rename plan to TunnelProvider -> Tunnel ginuerzh 2026-09-22 15:09:37 +08:00
  • 73baffc689 docs: plan the TunnelProvider.Dial rename ginuerzh 2026-09-22 15:06:42 +08:00
  • 5b85e90db8 chore(x): bump plugin to v0.8.1 and widen the p2p inner dialer list ginuerzh 2026-09-20 21:23:22 +08:00
  • 3627030098 Revert "fix(forwarder): authenticate HTTP node with Proxy-Authorization" ginuerzh 2026-09-20 20:51:30 +08:00
  • 34fbff3d3c fix(forwarder): authenticate HTTP node with Proxy-Authorization ginuerzh 2026-09-20 20:43:11 +08:00
  • 1c42c638a6 recorder: emit periodic session snapshots and byte deltas Leonov Vladislav 2026-09-14 10:18:43 +03:00
  • 06197bd987 fix(handler/tun): run keepalive on p2p links and expire stale routes v0.17.2 ginuerzh 2026-09-13 14:50:29 +08:00
  • a5605b935c chore(x): bump kcp-go to v5.6.72 and smux to v1.5.57 v0.17.1 ginuerzh 2026-09-12 12:07:28 +08:00
  • 8c999f1f5b feat(socks5): add optional UDP device binding (#127) ihipop 2026-09-12 10:37:46 +08:00
  • 7a4db061c9 fix(handler/sni): clear sniffing read deadline before the data path ginuerzh 2026-09-12 10:23:53 +08:00
  • a3e82c086c chore(x): bump github.com/go-gost/plugin to v0.8.0 v0.17.0 ginuerzh 2026-09-12 09:39:40 +08:00
  • ad702b4cbe test(p2p): feed chunks concurrently in the reassembly test ginuerzh 2026-09-12 09:39:40 +08:00
  • 2cb1365d46 fix(p2p): release the datagram assembly buffer at frame boundaries ginuerzh 2026-09-12 09:21:59 +08:00
  • 4f3261a9d9 feat(p2p): move tunnel data onto the gRPC Tunnel stream ginuerzh 2026-09-12 08:19:21 +08:00
  • 988c9afe28 fix(masque): reap idle CONNECT-UDP associations ginuerzh 2026-09-11 21:40:12 +08:00
  • 30f5a0b2c8 docs: add the pending issue and plan write-ups ginuerzh 2026-09-11 20:51:35 +08:00
  • 5bf06ef9ac docs(plans): drop the plans moved to the p2p repo ginuerzh 2026-09-11 20:50:46 +08:00
  • 8c255d8ec4 docs(plans): add the p2p tun link plan ginuerzh 2026-09-11 20:43:00 +08:00
  • 54ea0220a9 feat(p2p): datagram tunnel endpoints for tun-to-tun links ginuerzh 2026-09-11 20:42:29 +08:00
  • f70b114578 plugin: manage external plugin subprocess lifecycle ginuerzh 2026-09-07 17:40:20 +08:00
  • 4cd6cd5c30 add p2p M2 hole-punch plan (STUN + KCP + smux direct path) ginuerzh 2026-09-07 15:16:48 +08:00
  • dcd02f8d52 fix(quic): don't close shared transport on invalid datagram ginuerzh 2026-09-06 23:03:35 +08:00
  • d7f0b88086 docs(plans): add p2p mux + token plan (phase one) ginuerzh 2026-09-06 13:35:18 +08:00
  • 71c1566b00 docs(plans): add p2p DERP relay plan (phase two) ginuerzh 2026-09-06 13:34:24 +08:00
  • 8127c99153 feat(p2p): lazy tunnel open, whitelist the tls/ws/mux inner dialer family ginuerzh 2026-09-06 00:17:10 +08:00
  • 967053c690 fix(mtcp): re-init session in Handshake when it has no mux session yet ginuerzh 2026-09-06 00:17:10 +08:00
  • fe9d9c9574 add p2p plugin-backed tunnel dialer for chain nodes ginuerzh 2026-09-05 21:25:13 +08:00
  • dadbbdf5c7 docs(plans): harden p2p stub plan after review ginuerzh 2026-09-05 16:39:27 +08:00
  • c210b74106 fix(mtcp,mws,mtls): close dead session's base conn before dropping it ginuerzh 2026-09-05 16:39:27 +08:00
  • dac42ba39c fix(tun,tungo): release tun/tap device on listener close (gost#901) ginuerzh 2026-09-05 11:48:52 +08:00
  • 53269265e1 refactor(config): swap yaml.v3 encoder for goccy/go-yaml ginuerzh 2026-09-02 18:00:43 +08:00
  • cfccd22fc9 refactor(ss,tap): migrate tap off upstream go-shadowsocks2 onto the fork ginuerzh 2026-09-02 17:42:09 +08:00
  • de301e8cfb refactor(handler/http): drop govalidator dep, inline DNS name check ginuerzh 2026-09-02 17:01:58 +08:00
  • e119a973f2 refactor(routing): drop predicate dep, parse matcher rules via go/ast ginuerzh 2026-09-02 16:58:35 +08:00
  • 66960e7dd6 fix(redirect): skip pre-sniffing IP bypass check in whitelist mode v0.16.1 ginuerzh 2026-08-31 21:45:28 +08:00
  • 14fed91c62 httpcache: guard Turbo short-circuit responses, add StoreKey v0.16.0 ginuerzh 2026-08-29 09:23:26 +08:00
  • 2299c43bb7 forwarder: HTTP header rewrite (regex + plugin) and hostPattern wiring ginuerzh 2026-08-29 08:37:44 +08:00
  • dd65d46926 fix(handler/http): sync Gost-Target override into req.URL.Host to prevent policy bypass ginuerzh 2026-08-27 20:16:22 +08:00
  • 2e9befc39c fix(handler/http): resolve origin-form requests via Host header (#679) ginuerzh 2026-08-27 00:02:13 +08:00
  • 93bd2ea760 fix(hop): parenthesize host OR and normalize wildcard in filter->matcher rule v0.15.7 ginuerzh 2026-08-26 21:02:50 +08:00
  • 9292e0af3e fix(tunnel, forward): route tunneled hostname through hop filter.host ginuerzh 2026-08-26 20:28:37 +08:00
  • 6ad7269644 refactor(hop): normalize deprecated node filter into matcher at parse time ginuerzh 2026-08-26 20:26:26 +08:00
  • 4ea4efaba9 fix(forwarder, sniffing): assert BasicProxy recording via captured output v0.15.6 ginuerzh 2026-08-25 22:17:05 +08:00
  • faeede7881 feat(forwarder): delete JSON body fields via json-: rewrite match ginuerzh 2026-08-25 21:54:27 +08:00
  • a38a701dc4 refactor(sniffing): register protocol handlers via init() registries ginuerzh 2026-08-25 21:35:45 +08:00
  • 0132cefaec fix(api): save config back to the loaded file path (gost/x#123) v0.15.5 ginuerzh 2026-08-21 21:43:17 +08:00
  • 25cd60d42d fix(connector/ss): own the target addr instead of aliasing the pooled buffer (gost#896) ginuerzh 2026-08-21 21:42:43 +08:00