fatedier
bcd2424c24
test/e2e: optimize e2e test time by replacing sleeps with TCP readiness checks ( #5223 )
...
Replace the fixed 500ms sleep after each frps startup in RunProcesses
with a TCP dial-based readiness check that polls the server bind port.
This reduces the e2e suite wall time from ~97s to ~43s.
Also simplify the RunProcesses API to accept a single server template
string instead of a slice, matching how every call site uses it.
2026-03-08 23:41:33 +08:00
fatedier
c7ac12ea0f
server/group: refactor with shared abstractions and fix concurrency issues ( #5222 )
...
* server/group: refactor group package with shared abstractions and fix concurrency issues
Extract common patterns into reusable components:
- groupRegistry[G]: generic concurrent map for group lifecycle management
- baseGroup: shared plumbing for listener-based groups (TCP, HTTPS, TCPMux)
- Listener: unified virtual listener replacing 3 identical implementations
Fix concurrency issues:
- Stale-pointer race: isCurrent check + errGroupStale + controller retry loops
- Worker generation safety: pass realLn and acceptCh as params instead of reading mutable fields
- Connection leak: close conn on worker panic recovery path
- ABBA deadlock in HTTP UnRegister: consistent lock ordering (group.mu -> registry.mu)
- Round-robin overflow in HTTPGroup: use unsigned modulo
Add unit tests (17 tests) for registry, listener, and baseGroup.
Add TCPMux group load balancing e2e test.
* server/group: replace tautological assertion with require.NotPanics
* server/group: remove blank line between doc comment and type declaration
2026-03-08 18:57:21 +08:00
Oleksandr Redko
c2454e7114
refactor: fix modernize lint issues ( #5215 )
2026-03-07 23:10:19 +08:00
fatedier
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
01997deb98
add persistent proxy/visitor store with CRUD API and web UI ( #5188 )
2026-03-02 01:09:59 +08:00
fatedier
1cf325bb0c
https: add load balancing group support ( #5032 )
2025-10-28 17:37:18 +08:00
fatedier
3fa76b72f3
add proxy protocol support for UDP proxies ( #4810 )
2025-06-25 11:40:23 +08:00
fatedier
3c8d648ddc
vnet: fix issues ( #4771 )
2025-04-27 15:46:22 +08:00
fatedier
590ccda677
fix x-forwarded-for header ( #4111 )
2024-03-28 16:47:27 +08:00
fatedier
43ba7bd338
use new log package ( #4054 )
2024-03-12 13:58:53 +08:00
fatedier
d01f4a3ec1
cmd: use hyphen instead of underscore ( #3898 )
2023-12-27 10:44:13 +08:00
fatedier
7c799ee921
add e2e tests for ssh tunnel ( #3805 )
2023-11-28 13:48:32 +08:00
fatedier
bae0b4d7c0
optimize the code of the command line ( #3614 )
2023-09-15 10:33:32 +08:00
fatedier
7cd02f5bd8
add e2e tests for v1 config ( #3608 )
2023-09-13 16:32:39 +08:00