MHSanaei
ec0a57fc4f
fix(finalmask): hop client UDP through the udphop mask
...
xray-core 26.9.9 dropped finalmask.quicParams.udpHop for the client-only
"udphop" UDP mask {mode, interval, remoteIPs, remotePorts}. The panel kept
writing the old key, so hysteria/xhttp outbounds and JSON-subscription
clients silently stopped hopping ports.
An inbound keeps quicParams.udpHop: it is panel metadata advertised as the
link's mport, and a udphop mask on a listener fails with "udphop: client
only". The conversion (maskcompat.UpgradeLegacyUDPHop, intervalRemote mode)
runs only where a client config is produced:
- UDPHopClientMaskFix seeder over hosts, sub-JSON finalmask, cached
outbound-subscription outbounds and template outbounds (never inbounds);
- GetXrayConfig heals template outbounds at build time;
- the JSON subscription upgrades each generated client stream;
- the Go and frontend link importers upgrade a legacy fm= param.
The finalmask editor gains a side prop: the client side lifts the dead key
on mount and offers a udphop mask editor (also for xhttp's HTTP/3 dial);
the inbound side keeps the UDP Hop switch, labelled as advertised.
2026-10-11 11:20:34 +02:00
..
2026-10-11 10:28:49 +02:00
2026-10-11 10:28:49 +02:00
2026-07-08 13:28:37 +02:00
2026-08-24 02:41:15 +02:00
2026-09-08 16:55:32 +02:00
2026-09-03 21:50:23 +02:00
2026-09-10 14:50:48 +02:00
2026-09-26 22:02:49 +02:00
2026-08-19 15:36:27 +02:00
2026-09-25 21:21:03 +02:00
2026-10-05 15:27:56 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-09-14 15:59:34 +02:00
2026-07-17 00:33:06 +02:00
2026-09-14 15:59:34 +02:00
2026-09-14 12:10:25 +02:00
2026-10-02 15:01:21 +02:00
2026-09-16 11:56:20 +02:00
2026-10-07 10:55:06 +02:00
2026-10-07 10:55:06 +02:00
2026-08-19 15:36:27 +02:00
2026-09-03 22:32:05 +02:00
2026-08-19 15:36:27 +02:00
2026-10-11 10:28:49 +02:00
2026-09-13 12:44:55 +02:00
2026-09-27 16:06:42 +02:00
2026-10-08 21:59:38 +02:00
2026-10-07 10:55:06 +02:00
2026-09-26 22:59:23 +02:00
2026-07-17 00:33:06 +02:00
2026-06-11 12:10:49 +02:00
2026-08-24 02:41:15 +02:00
2026-09-13 12:44:55 +02:00
2026-09-25 21:21:03 +02:00
2026-10-05 19:46:46 +02:00
2026-08-19 15:36:27 +02:00
2026-09-25 21:21:03 +02:00
2026-09-25 21:21:03 +02:00
2026-08-19 15:36:27 +02:00
2026-10-05 15:27:56 +02:00
2026-07-09 00:45:35 +02:00
2026-10-11 07:55:12 +02:00
2026-09-09 00:47:18 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-07-29 08:03:21 +02:00
2026-09-30 15:03:21 +02:00
2026-10-02 13:54:39 +02:00
2026-08-19 15:36:27 +02:00
2026-09-08 18:08:24 +02:00
2026-09-14 12:08:38 +02:00
2026-09-25 21:21:03 +02:00
2026-08-19 15:36:27 +02:00
2026-09-25 21:21:03 +02:00
2026-08-19 15:36:27 +02:00
2026-09-13 20:02:43 +02:00
2026-09-26 22:57:01 +02:00
2026-09-26 22:57:01 +02:00
2026-10-05 14:01:47 +02:00
2026-10-05 14:01:47 +02:00
2026-09-13 12:53:57 +02:00
2026-08-19 15:36:27 +02:00
2026-09-30 15:03:16 +02:00
2026-06-29 14:32:23 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-10-11 07:17:05 +02:00
2026-09-27 12:26:37 +02:00
2026-08-19 15:36:27 +02:00
2026-10-11 11:20:34 +02:00
2026-10-02 13:54:39 +02:00
2026-08-19 15:36:27 +02:00
2026-09-13 22:03:50 +02:00
2026-10-11 08:21:08 +02:00
2026-10-11 10:28:49 +02:00
2026-09-08 18:08:24 +02:00
2026-09-15 21:06:32 +02:00
2026-09-27 01:06:17 +02:00
2026-09-25 21:21:03 +02:00
2026-09-03 16:33:37 +02:00
2026-09-12 10:15:48 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-09-14 16:00:13 +02:00
2026-09-30 15:03:16 +02:00
2026-10-05 14:01:47 +02:00
2026-09-26 20:31:50 +02:00
2026-09-15 21:06:32 +02:00
2026-07-17 00:33:06 +02:00
2026-09-25 21:21:03 +02:00
2026-08-19 15:36:27 +02:00
2026-07-28 23:03:13 +02:00
2026-09-03 21:20:38 +02:00
2026-09-11 11:59:35 +02:00
2026-08-19 15:36:27 +02:00
2026-10-02 13:54:39 +02:00
2026-10-11 11:20:34 +02:00
2026-09-14 19:53:57 +03:00
2026-10-11 11:20:34 +02:00
2026-09-14 15:02:58 +02:00
2026-08-19 15:36:27 +02:00
2026-09-14 19:53:57 +03:00
2026-08-22 23:11:06 +02:00
2026-09-14 19:53:05 +03:00
2026-09-15 21:21:36 +02:00
2026-09-25 21:21:03 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-09-16 01:55:56 +02:00
2026-09-12 11:13:45 +02:00
2026-09-25 21:21:03 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-09-25 21:21:03 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-06-28 18:10:38 +02:00
2026-09-15 21:13:29 +02:00
2026-07-28 22:12:52 +02:00
2026-09-08 17:14:01 +02:00
2026-08-19 15:36:27 +02:00
2026-09-25 21:21:03 +02:00
2026-10-02 14:23:05 +02:00
2026-05-27 04:26:50 +02:00
2026-06-14 22:39:40 +02:00
2026-07-17 00:33:06 +02:00
2026-08-19 15:36:27 +02:00
2026-07-14 13:00:25 +02:00
2026-10-03 00:31:52 +02:00
2026-09-26 03:31:51 +02:00
2026-09-15 22:04:00 +02:00
2026-09-08 18:08:24 +02:00
2026-08-19 15:36:27 +02:00
2026-09-16 01:55:56 +02:00
2026-09-02 20:21:27 +02:00
2026-09-16 01:55:56 +02:00
2026-09-27 16:06:42 +02:00
2026-08-19 15:36:27 +02:00
2026-09-03 16:35:07 +02:00
2026-10-03 02:56:02 +02:00
2026-10-03 02:56:02 +02:00
2026-09-30 15:03:16 +02:00
2026-06-24 12:54:05 +02:00
2026-08-24 14:56:40 +02:00
2026-09-14 15:02:58 +02:00
2026-10-11 07:55:12 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-10-02 13:54:39 +02:00
2026-10-11 10:31:01 +02:00
2026-07-17 00:33:06 +02:00
2026-07-17 00:33:06 +02:00
2026-08-19 15:36:27 +02:00
2026-08-19 15:36:27 +02:00
2026-06-23 17:38:16 +02:00
2026-08-19 15:36:27 +02:00