ginuerzh
b991baaf72
fix(io,tunnel): nil deref in RecorderObjectFromContext, CloseRead checked Writer, SetReadDeadline no unwrap
...
- entrypoint.go: guard ictx.RecorderObjectFromContext with nil checks on
ClientID and Redirect assignments
- io.go: fix CloseRead checking Writer instead of Reader, add Reader
fallback to CloseWrite, unwrap *readWriter/*readWriteCloser in
SetReadDeadline to reach underlying net.Conn
- docs: add package doc and exported symbol comments to internal/ctx
and internal/io
2026-05-24 17:51:16 +08:00
ginuerzh
174bc082d1
fix(tunnel): data race in CloseOnIdle and goroutine leak in sniffingWebsocketFrame
...
- Use write lock (Lock) instead of read lock (RLock) in CloseOnIdle since
it modifies the close channel, preventing a race with Close() that could
panic on double-close of channel.
- Buffer sniffingWebsocketFrame errc to capacity 2 and close both
connections on first error to ensure the remaining copy goroutine
unblocks and exits cleanly.
2026-05-22 16:31:37 +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
c7d16962ec
add service option for plugin
2025-08-29 23:36:31 +08:00
ginuerzh
b597467858
add context for conn
2025-08-04 19:29:38 +08:00
ginuerzh
db21de831a
fix xnet.Pipe
2025-08-01 23:00:50 +08:00
ginuerzh
208d18125c
replace xnet.Transport by xnet.Pipe
2025-07-28 20:52:15 +08:00
ginuerzh
afcf4a5252
parse real client IP
2025-07-15 19:59:10 +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
379d9a73ad
service: add limiter.scope option
2025-01-20 23:22:58 +08:00
ginuerzh
06d993023f
add traffic reset for stats
2024-12-24 20:11:22 +08:00
ginuerzh
be8e0555e5
handle tls for tunnel entrypoint
2024-12-23 21:05:55 +08:00
ginuerzh
6f001a779a
tunnel: fix tunnel routing for public entrypoint
2024-11-22 22:04:44 +08:00
ginuerzh
79b6b9138e
add limiterRefreshInterval option for limiter
2024-11-14 20:16:09 +08:00
ginuerzh
a12870e766
add compression flag option for http request
2024-11-02 20:41:23 +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
a97ac1f30a
fix http body recorder
2024-10-22 22:51:33 +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
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
8f994ab632
add handle options for sniffer
2024-10-10 22:49:56 +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
e09ec08881
add sid for connector log
2024-09-20 18:20:57 +08:00
ginuerzh
e37213ac01
add http body for handler recorder
2024-09-16 19:44:15 +08:00
ginuerzh
b39aa63f75
add clientIP for handler recorder object
2024-09-15 18:28:24 +08:00
ginuerzh
f681f7aa03
update handler recorder object
2024-09-15 10:51:23 +08:00
ginuerzh
69455ace9d
add handler recorder
2024-09-14 23:21:25 +08:00
ginuerzh
31c482c649
add scope param for traffic limiter
2024-08-31 09:30:04 +08:00
ginuerzh
ff20711c25
add stats support for tunnel handler
2024-08-28 13:34:05 +08:00
ginuerzh
22e522e933
fix udp connection timeout
2024-08-06 18:33:29 +08:00
ginuerzh
1a776dc759
fix connection state in tunnel entrypoint
2024-08-01 20:52:08 +08:00
ginuerzh
4a4c64cc66
fix host parsing
2024-07-10 22:57:49 +08:00
ginuerzh
3d2a7b7d3b
move x/internal/ctx to x/ctx
2024-01-30 18:19:39 +08:00
ginuerzh
5ee7746aab
fix tunnel connector selection
2024-01-28 18:56:19 +08:00
ginuerzh
3616a0d8a4
fix tunnel weight
2024-01-28 18:33:54 +08:00
ginuerzh
b5b39de62c
add weight for tunnel connector
2024-01-27 23:31:23 +08:00
ginuerzh
c959fc2f73
add observer
2024-01-03 20:55:06 +08:00
ginuerzh
f847fa533e
fix auth for file handler
2023-12-16 14:28:58 +08:00
ginuerzh
c95edd6ed3
fix crash for tun
2023-11-19 14:39:24 +08:00
ginuerzh
74639e9c4e
add router component
2023-11-19 14:23:21 +08:00