wwqgtxx
4a16d22398
chore: no longer used net.DefaultResolver when dns
section is disabled, now is equally only "system://"
2024-10-02 14:45:06 +08:00
wwqgtxx
990de84391
chore: better atomic using
2024-10-02 14:45:06 +08:00
Skyxim
ecd8facd81
chore: add warning for unified delay test when second failed
2024-10-01 03:14:37 +00:00
wwqgtxx
a330fa1506
chore: disallow some restful api for CMFA
2024-09-30 13:08:50 +08:00
wwqgtxx
fc9d5cfee9
feat: add external-controller-cors
can config allow-origins
and allow-private-network
2024-09-29 17:13:43 +08:00
wwqgtxx
264713571d
chore: set 0o666 to unix socket file
2024-09-27 22:36:19 +08:00
wwqgtxx
a67c379884
chore: code cleanup
2024-09-27 21:42:06 +08:00
xishang0128
af5ad3254b
chore: Use DELETE to clear the proxy group fixed
2024-09-27 21:14:04 +08:00
wwqgtxx
acfc9f8baa
chore: reset resolver's connection after default interface changed
2024-09-27 20:36:00 +08:00
wwqgtxx
1633885794
chore: update dependencies
2024-09-27 20:36:00 +08:00
wwqgtxx
2afa2798b1
chore: allow set security descriptor of namedpipe by environment variable LISTEN_NAMEDPIPE_SDDL
2024-09-27 18:31:50 +08:00
wwqgtxx
cd2d1c6bb0
fix: skip-auth-prefixes
not apply on listeners when users
is unset
2024-09-27 18:10:05 +08:00
wwqgtxx
88bfe7cffe
feat: add external-controller-pipe
for windows
...
maybe useful for electron and tauri client, node.js and rust still not support AF_UNIX on windows
2024-09-27 16:09:03 +08:00
wwqgtxx
43cb48231a
cache: add dns cache in udp packet sender
...
reduce the cost of re-resolving DNS for each packet received and prevent the target IP from jumping between multiple resolution results
2024-09-26 22:21:59 +08:00
wwqgtxx
4fa15c6334
chore: ensures packets can be sent without blocking the tunnel
2024-09-26 11:21:07 +08:00
wwqgtxx
5812a7bdeb
chore: simplify the code
2024-09-25 21:37:15 +08:00
HamsterReserved
3922b17067
chore: deliver UDP packets from same connection in receiving order ( #1540 )
...
All UDP packets are queued into a single channel, and multiple
workers are launched to poll the channel in current design.
This introduces a problem where UDP packets from a single connection
are delivered to different workers, thus forwarded in a random order
if workers are on different CPU cores. Though UDP peers normally
have their own logic to handle out-of-order packets, this behavior will
inevitably cause significant variance in delay and harm connection quality.
Furthermore, this out-of-order behavior is noticeable even if the underlying
transport could provide guaranteed orderly delivery - this is unacceptable.
This commit takes the idea of RSS in terms of NICs: it creates a distinct
queue for each worker, hashes incoming packets, and distribute the packet
to a worker by hash result. The tuple (SrcIP, SrcPort, DstIP, DstPort, Proto)
is used for hashing (Proto is always UDP so it's dropped from final
implementation), thus packets from the same connection can be sent to
the same worker, keeping the receiving order. Different connections can be
hashed to different workers to maintain performance.
Performance for single UDP connection is not affected, as there is already
a lock in natTable that prevents multiple packets being processed in different
workers, limiting single connection forwarding performance to 1 worker.
The only performance penalty is the hashing code, which should be neglectable
given the footprint of en/decryption work.
Co-authored-by: Hamster Tian <haotia@gmail.com>
2024-09-25 21:28:30 +08:00
wwqgtxx
a4e84f0479
chore: better apply tcp keepalive to listeners
2024-09-25 15:10:53 +08:00
wwqgtxx
6c0383026e
fix: AmneziaWG not working
2024-09-24 13:25:13 +08:00
wwqgtxx
59a2b24593
chore: save etag in bbolt by msgpack
2024-09-23 19:25:35 +08:00
wwqgtxx
966eeae41b
chore: rewrite bbolt cachefile implements
...
never use returned byte slices outside the transaction, ref:
https://pkg.go.dev/go.etcd.io/bbolt#hdr-Caveats
2024-09-23 09:35:48 +08:00
wwqgtxx
150c6ccd25
chore: skip duplicates nameserver when parse
2024-09-23 08:54:07 +08:00
wwqgtxx
33823f1728
chore: sync internal interface
2024-09-22 22:45:55 +08:00
wwqgtxx
781b783346
feat: add amnezia-wg-option
to wireguard outbound
2024-09-22 22:07:14 +08:00
wwqgtxx
ddfa9e8671
feat: add etag-support
to let user can disable this feature manually
2024-09-22 14:41:45 +08:00
wwqgtxx
b7cb6774bf
chore: support ETag for update geo
2024-09-22 13:57:57 +08:00
wwqgtxx
5d242510c8
chore: support ETag for providers
2024-09-22 11:42:29 +08:00
wwqgtxx
223eae0e06
chore: force refresh provider in background
2024-09-22 00:24:49 +08:00
wwqgtxx
7dafe7889e
chore: disallow space at begin or end in DomainTrie
2024-09-21 21:03:59 +08:00
wwqgtxx
d80e8bb0c2
chore: remove some confusing restrictions on comma separation in NameServerPolicy configuration
2024-09-21 20:03:17 +08:00
wwqgtxx
f52fe6aa74
fix: tun.device not shown in restful api
2024-09-21 19:46:39 +08:00
wwqgtxx
a08aa10630
chore: some internal types support encoding.TextUnmarshaler
2024-09-19 18:36:24 +08:00
wwqgtxx
794645b7f8
chore: direct using structure package decode proxy-name
2024-09-19 18:26:05 +08:00
wwqgtxx
f020b20ab9
chore: structure support encoding.TextUnmarshaler
2024-09-19 18:26:05 +08:00
Chun
3676d1b79f
feat: add proxy name replacement functionality for override ( #1481 )
...
* feat: add proxy name replacement functionality for override
* style: modify `override schema` info and provider parse error message
---------
Co-authored-by: chun <pujichun@outlook.com>
2024-09-18 22:41:06 +08:00
落心
58c973ee2b
fix: NewRejectWithOption
has wrong type ( #1518 )
...
Co-authored-by: nico <nico@starpay.com>
2024-09-18 22:36:20 +08:00
Larvan2
fb4d3c41c8
chore: simplify VlessFlow Option
2024-09-17 12:03:24 +08:00
wwqgtxx
e33d4a4769
chore: cleanup the patch code
2024-09-12 11:19:54 +08:00
xishang0128
4c3fe98ebd
chore: modify the default download address of ASN
2024-09-11 19:24:53 +08:00
wwqgtxx
0a2f606e1b
chore: cleanup the patch code
2024-09-11 16:10:49 +08:00
Larvan2
8230bc8e7d
chore: parse float in subscription info
2024-09-11 13:34:59 +08:00
wwqgtxx
ecbbf9d220
feat: doh client support ecs
and ecs-override
2024-09-11 10:56:51 +08:00
wwqgtxx
f305e440ef
fix: new tun with fd unneeded calculate interface name
2024-09-11 10:04:50 +08:00
wwqgtxx
910f236696
fix: UpdateMonitor should start when AutoDetectInterface enabled
2024-09-11 09:52:21 +08:00
wwqgtxx
417d709d60
fix: RawSrcAddr and RawSrcAddr in metadata
2024-09-10 21:46:56 +08:00
wwqgtxx
f8557f5fd8
chore: don't start UpdateMonitor when AutoRoute not enabled
2024-09-10 17:13:13 +08:00
wwqgtxx
89b9438fc0
fix: restful server restart
2024-09-10 16:43:00 +08:00
wwqgtxx
7c8f451892
chore: cleanup geo internal code
2024-09-09 16:08:48 +08:00
wwqgtxx
ef244b896a
chore: update geo in a batch
2024-09-09 10:07:50 +08:00
wwqgtxx
595a575cde
chore: add Count for ProxyProvider
2024-09-09 10:07:50 +08:00