Skip to content

Commit 82098fe

Browse files
Update writer.go
1 parent 3c0ea56 commit 82098fe

1 file changed

Lines changed: 6 additions & 2 deletions

File tree

src/writer.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1933,6 +1933,10 @@ var pattParamOrder = []string{
19331933
"sni", "alpn", "fp", "cs", "fm", "flow", "headerType", "packetEncoding",
19341934
}
19351935

1936+
func pattEscape(s string) string {
1937+
return strings.ReplaceAll(url.QueryEscape(s), "+", "%20")
1938+
}
1939+
19361940
func toPattConfig(line, proto string) string {
19371941
if proto != "vless" && proto != "trojan" {
19381942
return ""
@@ -1962,13 +1966,13 @@ func toPattConfig(line, proto string) string {
19621966
seen := make(map[string]bool)
19631967
for _, key := range pattParamOrder {
19641968
if vals, ok := q[key]; ok && len(vals) > 0 {
1965-
parts = append(parts, url.QueryEscape(key)+"="+url.QueryEscape(vals[0]))
1969+
parts = append(parts, pattEscape(key)+"="+pattEscape(vals[0]))
19661970
seen[key] = true
19671971
}
19681972
}
19691973
for key, vals := range q {
19701974
if !seen[key] && len(vals) > 0 {
1971-
parts = append(parts, url.QueryEscape(key)+"="+url.QueryEscape(vals[0]))
1975+
parts = append(parts, pattEscape(key)+"="+pattEscape(vals[0]))
19721976
}
19731977
}
19741978

0 commit comments

Comments
 (0)