fatedier
954f918d0c
docs: clear release notes ( #5570 )
2026-10-15 23:25:45 +08:00
fatedier
031716afd1
Merge pull request #5569 from fatedier/fix/docker-workspace-lockfile
...
fix(docker): install web dependencies from the workspace lockfile
2026-10-15 13:01:59 +08:00
fatedier
41ed2aecf8
test: align UDP compatibility protocol boundaries ( #5567 )
2026-10-14 10:49:55 +08:00
fatedier
12b0093ccf
chore: prepare v0.71.1 release notes ( #5564 )
2026-10-13 10:46:29 +08:00
fatedier
2542d11a62
fix(net): coordinate websocket handoff with listener shutdown ( #5563 )
2026-10-10 19:58:05 +08:00
Abdellatif Anaflous
c4d2db4177
fix(websocket): release a pending Accept when the listener is closed ( #5552 )
...
the websocket listener kept its accept channel open on Close, so an Accept call that was already waiting blocked forever
every other listener in pkg/util/net closes the channel and returns an error, but this one never did, so the HandleListener goroutine stayed stuck after the server closed
i close the channel on Close, guard the hand off send so a late connection does not panic, and return ErrWebsocketListenerClosed which was declared but never reached
Signed-off-by: Abdel <62770500+hktitof@users.noreply.github.com >
2026-10-10 18:19:59 +08:00
Mxmilu
71b31978b3
fix(server): close underlying work conn when server bandwidth limiter is enabled ( #5553 )
...
When bandwidthLimitMode is "server", the work connection is wrapped by
libio.WrapReadWriteCloser with a close callback that captured the
variable being reassigned (local/rwc). At call time the callback
referenced the wrapper itself, whose closed guard was already set, so
Close returned nil without closing the underlying work connection.
For TCP proxies this left libio.Join blocked on the other copy
goroutine after the user disconnected, keeping the work connection and
the backend connection open. HTTP and UDP proxies had the same pattern.
Bind the Close method value before reassignment, and add an e2e test
verifying that the local connection is closed after the user
disconnects.
2026-10-10 10:45:34 +08:00
fatedier
1cc2dd8a23
fix(vhost): avoid request body access after CONNECT hijack ( #5562 )
2026-10-09 23:53:05 +08:00
dhairya
9c7d9898b3
fix(vhost): preserve buffered HTTP CONNECT tunnel data ( #5556 )
...
* fix(vhost): preserve buffered HTTP CONNECT tunnel data
* test(vhost): cover pipelined CONNECT data and bidirectional tunnel traffic
2026-10-09 23:07:48 +08:00
dhairya
ab0959868a
fix: rotate daily counters by calendar date across DST ( #5555 )
...
* Fix daily counter rotation across daylight-saving changes
* Test daily counter rotation across DST and skipped midnight
2026-10-09 20:13:03 +08:00
fatedier
1dbd44edd3
fix(msg): interrupt control reads during dispatcher shutdown ( #5561 )
2026-10-09 17:46:31 +08:00
Cyoid
fccc7b0e9f
fix(msg): close control connection on write failure ( #5550 )
...
* fix(msg): close control connection on write failure
* fix(msg): handle shutdown enqueue race and preserve constructor API
2026-10-09 16:17:08 +08:00
fatedier
55107d003d
fix: synchronize service startup and shutdown ( #5560 )
2026-10-09 12:27:12 +08:00
fatedier
4cd4747525
fix: use Go 1.26 new expressions for pointer initialization ( #5559 )
2026-10-08 22:28:31 +08:00
stefanzier-prophet
f8be1cdfe2
deps: bump golang.org/x/crypto to v0.56.0 and build with Go 1.26 ( #5558 )
...
x/crypto v0.56.0 fixes two denial-of-service bugs in golang.org/x/crypto/ssh
channel handling (GO-2026-6354 / CVE-2026-78662, GO-2026-6355 /
CVE-2026-56855), reachable through the frps SSH tunnel gateway in pkg/ssh.
v0.55.0 fixes GO-2026-6303 / CVE-2026-56854. v0.56.0 requires Go 1.26, so the
go directive, CI and Docker builders move from 1.25 to 1.26; Go 1.25 stopped
receiving security fixes when Go 1.27 was released.
Also bumps github.com/Azure/go-ntlmssp to v0.1.1 (GO-2026-5543 /
CVE-2026-32952).
Claude-Session: https://claude.ai/code/session_01FV4GkYDtbatepp2KH3s247
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com >
2026-10-08 22:06:35 +08:00
Sebastian
d5636108e6
[fix] race condition when trying to reconnect ( #5547 )
2026-10-08 21:22:43 +08:00
fatedier
d20a232996
test: strengthen health check coverage ( #5528 )
2026-09-10 01:28:26 +08:00
fatedier
b0d840858f
ci: upgrade CircleCI config to 2.1 ( #5530 )
2026-09-10 00:17:12 +08:00
fatedier
c5508627c4
docs: add rapidproxy as gold sponsor ( #5529 )
2026-09-10 00:02:51 +08:00
Rui JingAn
832df8dff6
fix(health): reset failed count after successful check ( #5502 )
...
Signed-off-by: racequite <quiterace@gmail.com >
2026-08-29 22:55:32 +08:00
fatedier
ebb4773c2c
docs: update release notes ( #5521 )
2026-08-29 14:41:43 +08:00
fatedier
23ec9b4979
vnet: serialize VirtualNet route lifecycle ( #5512 )
...
* vnet: serialize virtual net route lifecycle
* test: remove fixed virtual net helper parameters
2026-08-28 10:56:05 +08:00
flying
40bb45d192
vnet: fix route cleanup and reconnect backoff ( #5492 )
2026-08-26 23:33:45 +08:00
fatedier
758f07d59e
deps: migrate to fatedier/yamux v0.2.0 ( #5498 )
2026-08-18 00:24:11 +08:00
fatedier
25a4ba306a
ci: pin golangci-lint to v2.12.2 ( #5496 )
2026-08-17 00:48:09 +08:00
fatedier
6c8a8d0a97
web: patch vulnerable transitive dependencies ( #5490 )
2026-08-13 01:12:34 +08:00
fatedier
da04e1e07a
log: improve prefix handling ( #5489 )
2026-08-12 23:56:00 +08:00
fatedier
71a2bf30f9
docs: add release note for domain validation fix ( #5475 )
2026-08-09 23:04:09 +08:00
fatedier
a6a782bed4
config: reject case-insensitive subdomain domains ( #5474 )
2026-08-09 22:52:30 +08:00
fatedier
223b44336c
ssh: serialize tunnel channel writes ( #5473 )
2026-08-09 19:12:12 +08:00
fatedier
f6688e2a0d
client: reject invalid work connection addresses ( #5472 )
2026-08-09 18:39:21 +08:00
fatedier
f666d97b64
limit: clamp bandwidth limiter burst ( #5471 )
2026-08-09 17:30:39 +08:00
fatedier
5b68148f11
udp: handle closed forwarding channel ( #5470 )
2026-08-09 15:31:11 +08:00
Yarden Shoham
d1928f9689
remove retired Go Report Card badge ( #5467 )
2026-08-05 10:52:16 +08:00
fatedier
1a3a872bd2
fix(frpc): respect feature gates in verify ( #5465 )
2026-08-04 12:53:10 +08:00
fatedier
290017cb53
update version to 0.71.0 ( #5464 )
2026-08-03 23:37:36 +08:00
fatedier
2291e8835f
feat: use binary codec for SUDP packets ( #5461 )
2026-07-31 16:53:16 +08:00
fatedier
1ab59e763c
server: validate control pool counts ( #5459 )
2026-07-30 23:30:16 +08:00
fatedier
9d45a55720
docs: add release note for #5456 ( #5458 )
2026-07-30 14:40:54 +08:00
fatedier
effa496859
feat: add negotiated binary UDP packets ( #5456 )
2026-07-30 13:19:55 +08:00
fatedier
5c6d761c12
chore(web): upgrade frontend dependencies ( #5454 )
2026-07-28 19:36:44 +08:00
fatedier
3d89ab7ff1
build(web): upgrade auto import plugins ( #5453 )
2026-07-28 17:09:46 +08:00
fatedier
f3828cbfdb
build(web): upgrade ESLint to v10 ( #5452 )
2026-07-28 16:10:29 +08:00
fatedier
00c24e39bb
test(web): add frontend unit test baseline ( #5451 )
2026-07-28 01:27:35 +08:00
fatedier
2175557d48
web: fix Vite config tsconfig includes ( #5450 )
2026-07-27 19:21:28 +08:00
fatedier
de4b483710
web: patch vulnerable transitive dependencies ( #5449 )
2026-07-27 14:57:58 +08:00
fatedier
2d63f6b1f9
web/frpc: fix visitor plugin validation for sudp ( #5448 )
2026-07-27 12:04:00 +08:00
barkure
40274d8c92
web/frpc: support virtual net visitor plugin ( #5414 )
2026-07-23 22:02:49 +08:00
fatedier
18eef83b69
fix(client): synchronize graceful shutdown duration ( #5442 )
2026-07-23 13:55:00 +08:00
fatedier
466a94f5d1
update quic-go dependency to v0.60.0 ( #5443 )
2026-07-23 12:28:10 +08:00