mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-04-17 13:05:57 +00:00
1. **Fixed XPadding Placement Dropdown**: - Added the missing `cookie` and `query` options to `xPaddingPlacement` (`stream_xhttp.html`). - *Why:* Previously, users wanting `cookie` obfuscation were forced to use the `header` placement string. This caused Xray-core to blindly intercept the entire monolithic HTTP Cookie header, failing internal padding-length validations and causing the inbound to silently drop the connection. 2. **Fixed Uplink Data Placement Validation**: - Replaced the unsupported `query` option with `cookie` in `uplinkDataPlacement`. - *Why:* Xray-core's `transport_internet.go` explicitly forbids `query` as an uplink placement option. Selecting it from the UI previously sent a payload that would cause Xray-core to instantly throw an `unsupported uplink data placement: query` panic. Adding `cookie` perfectly aligns the UI with Xray-core restrictions. ### Related Issues - Resolves #3992
52 lines
1.4 KiB
Go
52 lines
1.4 KiB
Go
package conf_test
|
|
|
|
import (
|
|
"testing"
|
|
|
|
. "github.com/xtls/xray-core/infra/conf"
|
|
"github.com/xtls/xray-core/proxy/wireguard"
|
|
)
|
|
|
|
func TestWireGuardConfig(t *testing.T) {
|
|
creator := func() Buildable {
|
|
return new(WireGuardConfig)
|
|
}
|
|
|
|
runMultiTestCase(t, []TestCase{
|
|
{
|
|
Input: `{
|
|
"secretKey": "uJv5tZMDltsiYEn+kUwb0Ll/CXWhMkaSCWWhfPEZM3A=",
|
|
"address": ["10.1.1.1", "fd59:7153:2388:b5fd:0000:0000:1234:0001"],
|
|
"peers": [
|
|
{
|
|
"publicKey": "6e65ce0be17517110c17d77288ad87e7fd5252dcc7d09b95a39d61db03df832a",
|
|
"endpoint": "127.0.0.1:1234"
|
|
}
|
|
],
|
|
"mtu": 1300,
|
|
"workers": 2,
|
|
"domainStrategy": "ForceIPv6v4",
|
|
"noKernelTun": false
|
|
}`,
|
|
Parser: loadJSON(creator),
|
|
Output: &wireguard.DeviceConfig{
|
|
// key converted into hex form
|
|
SecretKey: "b89bf9b5930396db226049fe914c1bd0b97f0975a13246920965a17cf1193370",
|
|
Endpoint: []string{"10.1.1.1", "fd59:7153:2388:b5fd:0000:0000:1234:0001"},
|
|
Peers: []*wireguard.PeerConfig{
|
|
{
|
|
// also can read from hex form directly
|
|
PublicKey: "6e65ce0be17517110c17d77288ad87e7fd5252dcc7d09b95a39d61db03df832a",
|
|
Endpoint: "127.0.0.1:1234",
|
|
KeepAlive: 0,
|
|
AllowedIps: []string{"0.0.0.0/0", "::0/0"},
|
|
},
|
|
},
|
|
Mtu: 1300,
|
|
NumWorkers: 2,
|
|
DomainStrategy: wireguard.DeviceConfig_FORCE_IP64,
|
|
NoKernelTun: false,
|
|
},
|
|
},
|
|
})
|
|
}
|