19 lines
552 B
Go
19 lines
552 B
Go
package config
|
|
|
|
import "strings"
|
|
|
|
// DetectProtocol infers protocol from a share/proxy URI.
|
|
func DetectProtocol(raw string) Protocol {
|
|
lower := strings.ToLower(strings.TrimSpace(raw))
|
|
switch {
|
|
case strings.HasPrefix(lower, "hysteria2://"), strings.HasPrefix(lower, "hy2://"):
|
|
return ProtocolHysteria2
|
|
case strings.HasPrefix(lower, "naive+"), strings.HasPrefix(lower, "naive://"),
|
|
strings.HasPrefix(lower, "https://"), strings.HasPrefix(lower, "quic://"),
|
|
strings.HasPrefix(lower, "http://"):
|
|
return ProtocolNaive
|
|
default:
|
|
return ""
|
|
}
|
|
}
|