mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2026-04-25 17:06:05 +00:00
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
22 lines
412 B
Go
22 lines
412 B
Go
package model
|
|
|
|
import "testing"
|
|
|
|
func TestIsHysteria(t *testing.T) {
|
|
cases := []struct {
|
|
in Protocol
|
|
want bool
|
|
}{
|
|
{Hysteria, true},
|
|
{Hysteria2, true},
|
|
{VLESS, false},
|
|
{Shadowsocks, false},
|
|
{Protocol(""), false},
|
|
{Protocol("hysteria3"), false},
|
|
}
|
|
for _, c := range cases {
|
|
if got := IsHysteria(c.in); got != c.want {
|
|
t.Errorf("IsHysteria(%q) = %v, want %v", c.in, got, c.want)
|
|
}
|
|
}
|
|
}
|