hysteria: also accept "hysteria2" protocol string

UI stores v1 and v2 both as "hysteria" with settings.version, but
inbounds that came in from imports / manual SQL can carry the
literal "hysteria2" string and get silently dropped everywhere we
switch on protocol.

Add Hysteria2 constant + IsHysteria helper, use it in the places
that gate on protocol (sub SQL, getLink, genHysteriaLink, clash
buildProxy, json gen, inbound.go validation, xray AddUser).

Existing "hysteria" inbounds are untouched.

closes #4081
This commit is contained in:
pwnnex
2026-04-22 18:55:09 +03:00
parent e6d0c33937
commit eb4791a1cd
7 changed files with 51 additions and 18 deletions

View File

@@ -231,7 +231,7 @@ func (x *XrayAPI) AddUser(Protocol string, inboundTag string, user map[string]an
Email: userEmail,
})
}
case "hysteria":
case "hysteria", "hysteria2":
auth, err := getRequiredUserString(user, "auth")
if err != nil {
return err