Alexey Sviridov and GitHub
7441443134
feat(client): verify server certificates against the system root store ( #5546 )
...
transport.tls.trustedCaFile is installed as RootCAs, and omitting it sets
InsecureSkipVerify, so system-root verification cannot be selected directly.
Add an opt-in transport.tls.useSystemRoots that enables certificate
verification with RootCAs nil when no trusted CA file is set, allowing Go to
use system roots and native verification on macOS and Windows. Defaults are
unchanged.
2026-10-18 14:08:05 +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
fatedier and GitHub
da04e1e07a
log: improve prefix handling ( #5489 )
2026-08-12 23:56:00 +08:00
fatedier and GitHub
a6a782bed4
config: reject case-insensitive subdomain domains ( #5474 )
2026-08-09 22:52:30 +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
1ab59e763c
server: validate control pool counts ( #5459 )
2026-07-30 23:30:16 +08:00
MAAZIZ Adel Ayoub and GitHub
035889c360
fix(client): reject duplicate proxy and visitor names ( #5378 )
2026-06-24 13:37:29 +08:00
fatedier and GitHub
a88e0e9a49
refactor: clean up code ( #5308 )
2026-05-12 11:13:50 +08:00
fatedier and GitHub
e9464919d1
protocol: add v2 wire protocol with binary framing and capability negotiation ( #5294 )
2026-04-27 00:17:00 +08:00
fatedier and GitHub
ff4ad2f907
auth/oidc: fix eager token fetch at startup, add validation and e2e tests ( #5234 )
2026-03-15 22:29:45 +08:00
Oleksandr Redko and GitHub
c2454e7114
refactor: fix modernize lint issues ( #5215 )
2026-03-07 23:10:19 +08:00
fatedier and GitHub
0b4f83cd04
pkg/config: use modern Go stdlib for sorting and string operations ( #5210 )
...
- slices.SortedFunc + maps.Values + cmp.Compare instead of manual
map-to-slice collection + sort.Slice (source/aggregator.go)
- strings.CutSuffix instead of HasSuffix+TrimSuffix, and deduplicate
error handling in BandwidthQuantity.UnmarshalString (types/types.go)
2026-03-06 23:13:29 +08:00
fatedier and GitHub
e9f7a1a9f2
pkg: use modern Go stdlib functions to simplify code ( #5209 )
...
- strings.CutPrefix instead of HasPrefix+TrimPrefix (naming, legacy)
- slices.Contains instead of manual loop (plugin/server)
- min/max builtins instead of manual comparisons (nathole)
2026-03-06 22:14:46 +08:00
fatedier and GitHub
b7435967b0
pkg/config: fix line numbers shown incorrectly for TOML type mismatch errors ( #5195 )
2026-03-04 20:53:22 +08:00
774478d071
pkg/config: improve error messages with line number details for config parsing ( #5194 )
...
When frpc verify encounters config errors, the error messages now include
line/column information to help users locate problems:
- TOML syntax errors: report line and column from the TOML parser
(e.g., "toml: line 4, column 11: expected character ]")
- Type mismatch errors: report the field name and approximate line number
(e.g., "line 3: field \"proxies\": cannot unmarshal string into ...")
- File format detection: use file extension to determine format, preventing
silent fallthrough from TOML to YAML parser which produced confusing errors
Previously, a TOML file with syntax errors would silently fall through to the
YAML parser, which would misinterpret the content and produce unhelpful errors
like "json: cannot unmarshal string into Go value of type v1.ClientConfig".
https://claude.ai/code/session_017HWLfcXS3U2hLoy4dsg8Nv
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-04 19:27:30 +08:00
fatedier and GitHub
fbeb6ca43a
refactor: restructure API packages into client/http and server/http with typed proxy/visitor models ( #5193 )
2026-03-04 17:38:43 +08:00
fatedier and GitHub
01997deb98
add persistent proxy/visitor store with CRUD API and web UI ( #5188 )
2026-03-02 01:09:59 +08:00
fatedier and GitHub
d0347325fc
pkg/config: fix custom domain validation to prevent false matches with subdomain host ( #5178 )
2026-02-13 14:10:18 +08:00
fatedier and GitHub
36718d88e4
server: add client registry with dashboard support ( #5115 )
2026-01-08 20:07:14 +08:00
fatedier and GitHub
7526d7a69a
refactor: separate auth config from runtime and defer token resolution ( #5105 )
2025-12-25 00:53:08 +08:00
fatedier and GitHub
0fe8f7a0b6
refactor: reorganize security policy into dedicated packag ( #5088 )
2025-12-05 16:26:09 +08:00
fatedier and GitHub
15fd19a16d
fix lint ( #5068 )
2025-11-18 01:11:44 +08:00
Krzysztof Bogacki and GitHub
66973a03db
Add exec value source type ( #5050 )
...
* config: introduce ExecSource value source
* auth: introduce OidcTokenSourceAuthProvider
* auth: use OidcTokenSourceAuthProvider if tokenSource config is present on the client
* cmd: allow exec token source only if CLI flag was passed
2025-11-18 00:20:21 +08:00
fatedier and GitHub
b27b846971
config: add enabled field for individual proxy and visitor ( #5048 )
2025-11-06 14:05:03 +08:00
juejinyuxitu and GitHub
6561107945
chore: fix struct field name in comment ( #4993 )
...
Signed-off-by: juejinyuxitu <juejinyuxitu@outlook.com >
2025-09-25 16:47:33 +08:00
fatedier and GitHub
abf4942e8a
auth: enhance OIDC client with TLS and proxy configuration options ( #4990 )
2025-09-25 10:19:19 +08:00
fatedier and GitHub
80d3f332e1
xtcp: add configuration to disable assisted addresses in NAT traversal ( #4951 )
2025-08-25 15:52:52 +08:00
fatedier and GitHub
f9065a6a78
add tokenSource support for auth configuration ( #4865 )
2025-07-03 13:17:21 +08:00
fatedier
43cf1688e4
update golangci-lint version ( #4817 )
2025-06-25 11:40:23 +08:00
fatedier
8eb525a648
feat: support YAML merge in strict configuration mode ( #4809 )
2025-06-25 11:40:23 +08:00
fatedier and GitHub
a78814a2e9
virtual-net: initial ( #4751 )
2025-04-16 16:05:54 +08:00
hansmi and GitHub
b8d3ace113
Use text/template instead of html/template for config pre-processing ( #4656 )
2025-02-07 11:33:11 +08:00
fatedier and GitHub
27db6217ec
frpc: support metadatas and annotations in frpc proxy commands ( #4623 )
2025-01-06 14:22:57 +08:00
Gabriel Marin and GitHub
092e5d3f94
client, pkg, server, test: replaced 'interface{}' with 'any' ( #4611 )
2025-01-02 11:24:08 +08:00
fatedier and GitHub
4383756fd4
frps: add support for quic-bind-port parameter in frps ( #4519 )
2024-10-30 15:12:31 +08:00
fatedier and GitHub
f7a06cbe61
use go1.23 ( #4495 )
2024-10-17 17:22:41 +08:00
fatedier and GitHub
2855ac71e3
frpc visitor: add --server-user option to specify server proxy username ( #4477 )
2024-10-09 14:04:30 +08:00
fatedier and GitHub
69cc422edf
client plugin: added plugin tls2raw ( #4341 )
2024-07-25 14:28:17 +08:00
fatedier and GitHub
b4d5d8c756
plugin https2http&https2https: return 421 if host not match sni ( #4323 )
2024-07-09 10:50:16 +08:00
fatedier and GitHub
939c490768
Add http2http client plugin with hostHeaderRewrite and requestHeaders support ( #4275 )
2024-06-12 17:30:10 +08:00
fatedier and GitHub
77990c31ef
fix ini configuration default values ( #4250 )
2024-05-30 10:36:30 +08:00
fatedier and GitHub
522e2c94c1
config: return error if plugin type is empty ( #4235 )
2024-05-23 14:52:12 +08:00
fatedier and GitHub
301515d2e8
update the default value of transport.tcpMuxKeepaliveInterval ( #4231 )
2024-05-21 12:00:35 +08:00
fatedier and GitHub
e81b36c5ba
support responseHeaders.set for proxy type http ( #4192 )
2024-04-29 15:53:45 +08:00
fatedier and GitHub
ee3892798d
change default value of heartbeat interval and timeout when tcpmux enabled ( #4186 )
2024-04-28 20:48:44 +08:00
fatedier and GitHub
c08be0fd92
update release notes ( #4086 )
2024-03-20 15:16:01 +08:00
Kaive Young and GitHub
bc5fb91c05
add header for http healthcheck ( #4085 )
2024-03-20 14:58:03 +08:00
fatedier and GitHub
3585f5c0c0
support range ports mapping by go template ( #4073 )
2024-03-15 17:23:16 +08:00
fatedier and GitHub
e6ec5a509b
update release notes ( #4055 )
2024-03-12 15:14:13 +08:00
fatedier and GitHub
7ae3719b82
cleanup code ( #4019 )
2024-02-22 21:04:21 +08:00