fatedier and GitHub
d8cf1800dc
Merge pull request #5568 from fatedier/dev
...
Release v0.71.1
2026-10-14 16:40:54 +08:00
fatedier and GitHub
41ed2aecf8
test: align UDP compatibility protocol boundaries ( #5567 )
2026-10-14 10:49:55 +08:00
fatedier and GitHub
12b0093ccf
chore: prepare v0.71.1 release notes ( #5564 )
2026-10-13 10:46:29 +08:00
fatedier and GitHub
2542d11a62
fix(net): coordinate websocket handoff with listener shutdown ( #5563 )
2026-10-10 19:58:05 +08:00
Abdellatif Anaflous and GitHub
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
Mxmilu666 and GitHub
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 and GitHub
1cc2dd8a23
fix(vhost): avoid request body access after CONNECT hijack ( #5562 )
2026-10-09 23:53:05 +08:00
dhairya and GitHub
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 and GitHub
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 and GitHub
1dbd44edd3
fix(msg): interrupt control reads during dispatcher shutdown ( #5561 )
2026-10-09 17:46:31 +08:00
Cyoid and GitHub
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 and GitHub
55107d003d
fix: synchronize service startup and shutdown ( #5560 )
2026-10-09 12:27:12 +08:00
fatedier and GitHub
4cd4747525
fix: use Go 1.26 new expressions for pointer initialization ( #5559 )
2026-10-08 22:28:31 +08:00
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 and GitHub
d5636108e6
[fix] race condition when trying to reconnect ( #5547 )
2026-10-08 21:22:43 +08:00
fatedier and GitHub
d20a232996
test: strengthen health check coverage ( #5528 )
2026-09-10 01:28:26 +08:00
fatedier and GitHub
b0d840858f
ci: upgrade CircleCI config to 2.1 ( #5530 )
2026-09-10 00:17:12 +08:00
fatedier and GitHub
c5508627c4
docs: add rapidproxy as gold sponsor ( #5529 )
2026-09-10 00:02:51 +08:00
Rui JingAn and GitHub
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 and GitHub
ebb4773c2c
docs: update release notes ( #5521 )
2026-08-29 14:41:43 +08:00
fatedier and GitHub
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 and GitHub
40bb45d192
vnet: fix route cleanup and reconnect backoff ( #5492 )
2026-08-26 23:33:45 +08:00
fatedier and GitHub
758f07d59e
deps: migrate to fatedier/yamux v0.2.0 ( #5498 )
2026-08-18 00:24:11 +08:00
fatedier and GitHub
25a4ba306a
ci: pin golangci-lint to v2.12.2 ( #5496 )
2026-08-17 00:48:09 +08:00
4a23aa181c
Release v0.71.0 ( #5495 )
...
* web/frpc: support virtual net visitor plugin (#5414 )
* web/frpc: fix visitor plugin validation for sudp (#5448 )
* web: patch vulnerable transitive dependencies (#5449 )
* web: fix Vite config tsconfig includes (#5450 )
* test(web): add frontend unit test baseline (#5451 )
* build(web): upgrade ESLint to v10 (#5452 )
* build(web): upgrade auto import plugins (#5453 )
* chore(web): upgrade frontend dependencies (#5454 )
* feat: add negotiated binary UDP packets (#5456 )
* docs: add release note for #5456 (#5458 )
* server: validate control pool counts (#5459 )
* feat: use binary codec for SUDP packets (#5461 )
* update version to 0.71.0 (#5464 )
* fix(frpc): respect feature gates in verify (#5465 )
* remove retired Go Report Card badge (#5467 )
* udp: handle closed forwarding channel (#5470 )
* limit: clamp bandwidth limiter burst (#5471 )
* client: reject invalid work connection addresses (#5472 )
* ssh: serialize tunnel channel writes (#5473 )
* config: reject case-insensitive subdomain domains (#5474 )
* docs: add release note for domain validation fix (#5475 )
* log: improve prefix handling (#5489 )
* web: patch vulnerable transitive dependencies (#5490 )
---------
Co-authored-by: barkure <43804451+barkure@users.noreply.github.com >
Co-authored-by: Yarden Shoham <git@yardenshoham.com >
v0.71.0
2026-08-14 14:13:20 +08:00
fatedier and GitHub
6c8a8d0a97
web: patch vulnerable transitive dependencies ( #5490 )
2026-08-13 01:12:34 +08:00
fatedier and GitHub
da04e1e07a
log: improve prefix handling ( #5489 )
2026-08-12 23:56:00 +08:00
fatedier and GitHub
71a2bf30f9
docs: add release note for domain validation fix ( #5475 )
2026-08-09 23:04:09 +08:00
fatedier and GitHub
a6a782bed4
config: reject case-insensitive subdomain domains ( #5474 )
2026-08-09 22:52:30 +08:00
fatedier and GitHub
223b44336c
ssh: serialize tunnel channel writes ( #5473 )
2026-08-09 19:12:12 +08:00
fatedier and GitHub
f6688e2a0d
client: reject invalid work connection addresses ( #5472 )
2026-08-09 18:39:21 +08:00
fatedier and GitHub
f666d97b64
limit: clamp bandwidth limiter burst ( #5471 )
2026-08-09 17:30:39 +08:00
fatedier and GitHub
5b68148f11
udp: handle closed forwarding channel ( #5470 )
2026-08-09 15:31:11 +08:00
Yarden Shoham and GitHub
d1928f9689
remove retired Go Report Card badge ( #5467 )
2026-08-05 10:52:16 +08:00
fatedier and GitHub
1a3a872bd2
fix(frpc): respect feature gates in verify ( #5465 )
2026-08-04 12:53:10 +08:00
fatedier and GitHub
290017cb53
update version to 0.71.0 ( #5464 )
2026-08-03 23:37:36 +08:00
fatedier and GitHub
2291e8835f
feat: use binary codec for SUDP packets ( #5461 )
2026-07-31 16:53:16 +08:00
fatedier and GitHub
1ab59e763c
server: validate control pool counts ( #5459 )
2026-07-30 23:30:16 +08:00
fatedier and GitHub
9d45a55720
docs: add release note for #5456 ( #5458 )
2026-07-30 14:40:54 +08:00
fatedier and GitHub
effa496859
feat: add negotiated binary UDP packets ( #5456 )
2026-07-30 13:19:55 +08:00
fatedier and GitHub
5c6d761c12
chore(web): upgrade frontend dependencies ( #5454 )
2026-07-28 19:36:44 +08:00
fatedier and GitHub
3d89ab7ff1
build(web): upgrade auto import plugins ( #5453 )
2026-07-28 17:09:46 +08:00
fatedier and GitHub
f3828cbfdb
build(web): upgrade ESLint to v10 ( #5452 )
2026-07-28 16:10:29 +08:00
fatedier and GitHub
00c24e39bb
test(web): add frontend unit test baseline ( #5451 )
2026-07-28 01:27:35 +08:00
fatedier and GitHub
2175557d48
web: fix Vite config tsconfig includes ( #5450 )
2026-07-27 19:21:28 +08:00
fatedier and GitHub
de4b483710
web: patch vulnerable transitive dependencies ( #5449 )
2026-07-27 14:57:58 +08:00
fatedier and GitHub
2d63f6b1f9
web/frpc: fix visitor plugin validation for sudp ( #5448 )
2026-07-27 12:04:00 +08:00
barkure and GitHub
40274d8c92
web/frpc: support virtual net visitor plugin ( #5414 )
2026-07-23 22:02:49 +08:00
fatedier and GitHub
fa3bcca2b0
Merge pull request #5444 from fatedier/dev
...
Release v0.70.1
v0.70.1
2026-07-23 15:34:31 +08:00
fatedier and GitHub
18eef83b69
fix(client): synchronize graceful shutdown duration ( #5442 )
2026-07-23 13:55:00 +08:00