Skip to content

Commit

Permalink
fix: websocket host and httpupgrade support for trojan and more
Browse files Browse the repository at this point in the history
  • Loading branch information
dickymuliafiqri committed Dec 28, 2024
1 parent a9ce5da commit 02c9086
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 5 deletions.
21 changes: 16 additions & 5 deletions common/convert/converter.go
Original file line number Diff line number Diff line change
Expand Up @@ -178,15 +178,23 @@ func ConvertsV2Ray(buf []byte) ([]map[string]any, error) {
}

switch network {
case "ws":
case "ws", "httpupgrade":
headers := make(map[string]any)
wsOpts := make(map[string]any)

headers["User-Agent"] = RandUserAgent()
if host := query.Get("host"); host != "" {
headers["Host"] = host
}

wsOpts["path"] = query.Get("path")
wsOpts["headers"] = headers

if network == "httpupgrade" {
wsOpts["v2ray-http-upgrade"] = true
wsOpts["v2ray-http-upgrade-fast-open"] = true
}

trojan["ws-opts"] = wsOpts

case "grpc":
Expand Down Expand Up @@ -350,6 +358,7 @@ func ConvertsV2Ray(buf []byte) ([]map[string]any, error) {
wsOpts["max-early-data"] = med
wsOpts["early-data-header-name"] = "Sec-WebSocket-Protocol"
case "httpupgrade":
wsOpts["v2ray-http-upgrade"] = true
wsOpts["v2ray-http-upgrade-fast-open"] = true
}
query.Del("ed")
Expand Down Expand Up @@ -443,10 +452,12 @@ func ConvertsV2Ray(buf []byte) ([]map[string]any, error) {
} else if strings.Contains(pluginName, "v2ray-plugin") {
ss["plugin"] = "v2ray-plugin"
ss["plugin-opts"] = map[string]any{
"mode": pluginInfo.Get("mode"),
"host": pluginInfo.Get("host"),
"path": pluginInfo.Get("path"),
"tls": strings.Contains(plugin, "tls"),
"mode": pluginInfo.Get("mode"),
"host": pluginInfo.Get("host"),
"path": pluginInfo.Get("path"),
"tls": strings.Contains(plugin, "tls"),
"mux": pluginInfo.Get("mux") != "0",
"v2ray-http-upgrade": strings.Contains(plugin, "httpupgrade"),
}
}
}
Expand Down
1 change: 1 addition & 0 deletions common/convert/v.go
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ func handleVShareLink(names map[string]int, url *url.URL, scheme string, proxy m
wsOpts["max-early-data"] = med
wsOpts["early-data-header-name"] = "Sec-WebSocket-Protocol"
case "httpupgrade":
wsOpts["v2ray-http-upgrade"] = true
wsOpts["v2ray-http-upgrade-fast-open"] = true
}
}
Expand Down

0 comments on commit 02c9086

Please sign in to comment.