修复: mixed 协议可部署到节点: 后端 nodeEligibleProtocols 放开 Mixed(inbound.go 两处校验点), 前端 NODE_ELIGIBLE_PROTOCOLS 同步; 重建前端 dist(含 Swagger 页/分组页裁剪)
This commit is contained in:
@@ -57,6 +57,8 @@ func inboundCanEnableTlsFlow(protocol, streamSettings, settings string) bool {
|
||||
// sidecar-managed protocols are absent because their reconcile loops only query
|
||||
// NodeID IS NULL rows, so a node-assigned one would never be reconciled at all.
|
||||
// A new protocol defaults to ineligible until added here, as on the frontend.
|
||||
// Mixed is a plain xray inbound (not sidecar-managed): node-local mixed
|
||||
// inbounds already sync back and are managed by the panel, so it is eligible.
|
||||
var nodeEligibleProtocols = map[model.Protocol]bool{
|
||||
model.VLESS: true,
|
||||
model.VMESS: true,
|
||||
@@ -64,6 +66,7 @@ var nodeEligibleProtocols = map[model.Protocol]bool{
|
||||
model.Shadowsocks: true,
|
||||
model.Hysteria: true,
|
||||
model.WireGuard: true,
|
||||
model.Mixed: true,
|
||||
}
|
||||
|
||||
// isNodeEligibleProtocol reports whether protocol may be assigned to a node.
|
||||
|
||||
@@ -93,13 +93,13 @@ func TestInboundCanHostFallbacks_StaysTcpOnly(t *testing.T) {
|
||||
// frontend/src/pages/inbounds/form/InboundFormModal.tsx -- keep both lists
|
||||
// in sync if a protocol's node-eligibility ever changes.
|
||||
func TestIsNodeEligibleProtocol(t *testing.T) {
|
||||
eligible := []model.Protocol{model.VLESS, model.VMESS, model.Trojan, model.Shadowsocks, model.Hysteria, model.WireGuard}
|
||||
eligible := []model.Protocol{model.VLESS, model.VMESS, model.Trojan, model.Shadowsocks, model.Hysteria, model.WireGuard, model.Mixed}
|
||||
for _, p := range eligible {
|
||||
if !isNodeEligibleProtocol(p) {
|
||||
t.Errorf("isNodeEligibleProtocol(%q) = false, want true", p)
|
||||
}
|
||||
}
|
||||
ineligible := []model.Protocol{model.MTProto, model.AmneziaWG, model.Mixed, model.HTTP, model.Tunnel}
|
||||
ineligible := []model.Protocol{model.MTProto, model.AmneziaWG, model.HTTP, model.Tunnel}
|
||||
for _, p := range ineligible {
|
||||
if isNodeEligibleProtocol(p) {
|
||||
t.Errorf("isNodeEligibleProtocol(%q) = true, want false", p)
|
||||
|
||||
Reference in New Issue
Block a user