ginuerzh
8435716166
merge: PR #93 — configurable TCP keepalives for all TCP-based listeners and dialers
2026-05-21 21:47:15 +08:00
ginuerzh
3402418573
merge: PR #92 — make pipe idle timeout configurable via idleTimeout metadata
...
Merge beezly/fix/configurable-pipe-timeout with conflict resolution
in pipe.go (PipeOption/WithReadTimeout functional options pattern).
Fix pipe_test.go: update 4 pipeHalf() calls to pass readTimeout arg
matching the new signature.
2026-05-21 21:38:32 +08:00
ginuerzh
238a0b95b7
feat: upgrade core to v0.4.0, pass network to admission, add dial options
...
Upgrade github.com/go-gost/core from v0.3.3 to v0.4.0, adapting to
interface changes:
- Admit(ctx, network, addr, opts) now accepts a network parameter
- Router.Dial now accepts variadic chain.DialOption, forwarded to
the route's Dial call along with router-level options
- gRPC/HTTP admission plugins include the new Network field
Also fix two typos: ResoloverNodeOption -> ResolverNodeOption,
WithHostOpton -> WithHostOption.
2026-05-21 21:26:49 +08:00
ginuerzh
ef58909fb7
fix(dialer): correct inverted setMark on FreeBSD/OpenBSD
...
Fix setMark early-return conditions that were inverted relative to
Linux: on FreeBSD (SO_USER_COOKIE) and OpenBSD (SO_RTABLE), a
non-zero mark was short-circuited instead of applied, disabling
socket marking entirely.
Also fix GetClientIP to trim leading whitespace from X-Forwarded-For
entries (per RFC 7239), and fix Body.Read to subtract len(b) instead
of n from recordSize when a single read exceeds the remaining quota.
Add unit tests for internal/net/ (addr, dialer, http, ip, net, pipe,
transport, resolve, proxyproto, udp).
2026-05-21 20:58:48 +08:00
ginuerzh
d189dc7967
fix(pipe): prevent error swallowing and goroutine leak in Pipe/Transport
...
Pipe: remove context.WithCancel that caused premature ctx.Done()
before the second pipeHalf could return its error. Replace with a
completed counter that drains both errors even on cancellation.
Transport: increase error channel buffer from 1 to 2 to prevent
goroutine leak when both CopyBuffer goroutines complete.
2026-05-21 10:28:55 +08:00
ginuerzh
2acc669976
fix webtransport listener
2026-04-21 21:34:50 +08:00
ginuerzh
1c1f092a14
fix metrics wrapper
2025-10-11 21:54:16 +08:00
ginuerzh
a69a759e17
tunnel: add multiple entrypoints
2025-10-09 22:32:03 +08:00
ginuerzh
007ff0bae9
fix panic for channel close
2025-09-07 14:20:05 +08:00
ginuerzh
e2072399dd
fix sniffing for websocket
2025-09-04 21:30:49 +08:00
ginuerzh
c7d16962ec
add service option for plugin
2025-08-29 23:36:31 +08:00
ginuerzh
a65b7a059a
try to fix http2 panic ( #54 )
2025-08-21 22:12:43 +08:00
ginuerzh
52289bea6c
add network param for sniffing
2025-08-13 21:25:35 +08:00
ginuerzh
d0ff5358df
fix panic for nil pointer
2025-08-13 21:24:05 +08:00
ginuerzh
0e5c285eb7
fix empty hop nodes
2025-08-10 18:36:43 +08:00
ginuerzh
a5f66b0615
node: add bypass and admission matcher
2025-08-10 17:59:17 +08:00
ginuerzh
f3d3d2231e
fix tun route for ipv6
2025-08-09 19:19:04 +08:00
ginuerzh
4eb006f1b0
tungo: debug exec.Command output
2025-08-09 16:34:04 +08:00
ginuerzh
2b9f795972
logger: fix panic when ouput is none
2025-08-09 14:03:26 +08:00
ginuerzh
589c185053
forwarder: connect to sni host for empty node
2025-08-09 12:43:09 +08:00
ginuerzh
404aaae5f1
without cancel the context
2025-08-05 20:24:00 +08:00
ginuerzh
fd9dc6408a
fix ws listener
2025-08-05 00:13:48 +08:00
ginuerzh
b597467858
add context for conn
2025-08-04 19:29:38 +08:00
ginuerzh
ad5cf6fd61
add proxyProtocol support for dialer
2025-08-03 15:36:29 +08:00
ginuerzh
f71351f5ef
add interface xnet.SrcAddr/DstAddr
2025-08-03 10:15:53 +08:00
ginuerzh
79203e407c
add scoped options for cmd
2025-08-02 12:07:18 +08:00
ginuerzh
db21de831a
fix xnet.Pipe
2025-08-01 23:00:50 +08:00
ginuerzh
a5309eee97
add buffer size option for udp connection
2025-07-30 21:40:53 +08:00
ginuerzh
b64e5901b6
http: fix response for connect request
2025-07-30 21:40:31 +08:00
ginuerzh
87e454a6f1
tungo: additional metadata options
2025-07-30 10:07:18 +08:00
ginuerzh
3bbc10796c
http2: added non-connect request support
2025-07-30 10:06:52 +08:00
ginuerzh
208d18125c
replace xnet.Transport by xnet.Pipe
2025-07-28 20:52:15 +08:00
ginuerzh
35a049fb03
rename vtun to tungo
2025-07-26 16:17:04 +08:00
ginuerzh
281295d02f
fix tun device
2025-07-23 22:44:02 +08:00
ginuerzh
acae52ab89
add vtun listener and handler
2025-07-23 21:30:21 +08:00
ginuerzh
afcf4a5252
parse real client IP
2025-07-15 19:59:10 +08:00
ginuerzh
d9a2f44a78
add src field for logger and recorder
2025-07-02 21:35:02 +08:00
ginuerzh
97ed5080a6
service: reset tempDelay when retrying after accept error #52
2025-06-28 18:11:13 +08:00
ginuerzh
c8d905dea5
read config from stdin
2025-06-28 18:09:04 +08:00
ginuerzh
fe096d6e74
add clientIP for ws logger #51
2025-06-28 18:02:21 +08:00
ginuerzh
3ec2f9d487
update quic
2025-06-25 21:06:23 +08:00
ginuerzh
ce3c28baf5
rm deprecated library shadowsocks-go/shadowsocks
2025-06-25 21:05:39 +08:00
ginuerzh
11d982e062
add new APIs
2025-06-25 21:02:55 +08:00
ginuerzh
6caad5e37e
add file option for AuthConfig
2025-06-24 21:16:17 +08:00
ginuerzh
d819fd3041
support http-100 continue for sniffer
2025-06-24 21:15:38 +08:00
ginuerzh
8cacfad9eb
fix metrics for listener
2025-06-24 21:13:30 +08:00
ginuerzh
04d1587a77
set dns for tun
2025-02-25 20:39:33 +08:00
ginuerzh
69a0aa8853
use fixed buffer size
2025-02-18 21:04:04 +08:00
ginuerzh
e0915affda
use fixed buffer size
2025-02-18 17:38:27 +08:00
ginuerzh
d610e2dc01
add traffic limiter for relay bind
2025-02-18 17:37:13 +08:00
ginuerzh
2495b13053
fix traffic logging for socks5 udp
2025-02-18 17:30:36 +08:00
ginuerzh
75a106ee84
fix tun device
2025-02-11 23:12:46 +08:00
ginuerzh
2132268780
Bump golang.zx2c4.com/wireguard
2025-02-11 22:13:57 +08:00
ginuerzh
ef440e8b4a
router: router.id is optional
2025-02-11 20:54:52 +08:00
ginuerzh
fc12e33786
router handler: add cache for sd service
2025-02-09 16:16:44 +08:00
ginuerzh
08ad260606
add entrypoint for router handler
2025-02-08 23:07:54 +08:00
ginuerzh
9cd03b6b59
update go.mod
2025-02-07 15:45:14 +08:00
ginuerzh
355c72477a
add router handler & connector
2025-02-07 15:44:31 +08:00
ginuerzh
379d9a73ad
service: add limiter.scope option
2025-01-20 23:22:58 +08:00
ginuerzh
bf36bdc680
update go.mod
2025-01-10 21:48:05 +08:00
ginuerzh
aa7528fc1e
add reload for web api
2025-01-10 21:39:21 +08:00
ginuerzh
e480039691
update go.mod
2025-01-08 23:12:56 +08:00
ginuerzh
489a762811
service graceful shutdown
2025-01-08 23:12:06 +08:00
ginuerzh
eef3bd7f25
fix panic for stats wrapper
2024-12-27 20:42:20 +08:00
ginuerzh
06d993023f
add traffic reset for stats
2024-12-24 20:11:22 +08:00
ginuerzh
a5d4774682
add ip range matcher for bypass
2024-12-23 21:06:55 +08:00
ginuerzh
be8e0555e5
handle tls for tunnel entrypoint
2024-12-23 21:05:55 +08:00
ginuerzh
2693ba61c4
forwarder: fix ip matcher for tls
2024-12-18 19:05:19 +08:00
ginuerzh
fcb54bd576
fix observer for http2
2024-12-16 20:48:11 +08:00
ginuerzh
98f5a5f7eb
fix webtransport
2024-12-11 22:25:51 +08:00
ginuerzh
c1e6164a83
add unix domain socket support for api & metrics services
2024-11-22 22:49:10 +08:00
ginuerzh
6f001a779a
tunnel: fix tunnel routing for public entrypoint
2024-11-22 22:04:44 +08:00
ginuerzh
2e8a5d6f51
fix http keepalive for forwarding
2024-11-17 16:16:20 +08:00
ginuerzh
c2aedbabd9
add routing rule for node
2024-11-15 20:28:47 +08:00
ginuerzh
79b6b9138e
add limiterRefreshInterval option for limiter
2024-11-14 20:16:09 +08:00
ginuerzh
3db20563d2
add custom http response header for reverse proxy
2024-11-07 11:04:42 +08:00
ginuerzh
a12870e766
add compression flag option for http request
2024-11-02 20:41:23 +08:00
ginuerzh
edb9a992e2
http: fix http/1.0 connection close
2024-11-01 18:17:50 +08:00
ginuerzh
f4d9a5f79b
tunnel: checking closed connector
2024-11-01 15:25:45 +08:00
ginuerzh
88ba01b3dd
add redirect for handler recorder object
2024-10-31 19:14:21 +08:00
ginuerzh
d8126e8e30
update go.mod
2024-10-22 22:54:04 +08:00
ginuerzh
a97ac1f30a
fix http body recorder
2024-10-22 22:51:33 +08:00
ginuerzh
3b4fd643de
fix udp port forwarding
2024-10-22 22:50:40 +08:00
ginuerzh
3ca253537b
fix race condition for sniffing
2024-10-20 19:19:16 +08:00
ginuerzh
41f527aa46
sniffing: full websocket frame recording
2024-10-19 20:40:07 +08:00
ginuerzh
6b932e35bf
sniffing websocket frame
2024-10-19 19:36:06 +08:00
ginuerzh
a0cbee8817
use http.transport for non-connect http tunnel
2024-10-17 21:57:20 +08:00
ginuerzh
7e51404ae5
fix handler sniffing
2024-10-16 23:01:12 +08:00
ginuerzh
618d042001
add input/ouput fields for log
2024-10-16 22:16:34 +08:00
ginuerzh
24547b4332
add ClientAddr for websocket conn
2024-10-16 20:46:45 +08:00
ginuerzh
ea179a0ee6
tunnel: fix http switching protocols
2024-10-15 19:36:20 +08:00
ginuerzh
51ca9f620a
add transport for tunnel entrypoint
2024-10-15 18:47:36 +08:00
ginuerzh
5bba004324
add keepalive option for tunnel entrypoint
2024-10-14 23:09:07 +08:00
ginuerzh
0ffed81601
add sniffer for forwarding handler
2024-10-14 21:18:38 +08:00
ginuerzh
27242d0b66
recorder: add input/output traffic stats for handler recorder object
2024-10-11 20:32:56 +08:00
ginuerzh
8f994ab632
add handle options for sniffer
2024-10-10 22:49:56 +08:00
ginuerzh
9a56c8fba3
add keepalive option for http handler
2024-10-10 16:52:01 +08:00
ginuerzh
c42a44abb6
add sniffer utility
2024-10-02 22:51:23 +08:00
ginuerzh
3c8add4b82
add traffic sniffing for handler
2024-09-27 15:55:28 +08:00
ginuerzh
dfb6cb95d0
add username for redis
2024-09-25 22:05:19 +08:00