diff options
| author | Ho3ein <ho3ein.sanaei@gmail.com> | 2023-04-12 14:59:37 +0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-04-12 14:59:37 +0300 |
| commit | 7ee9133e9bc68204864e65fb34c2670394b344a4 (patch) | |
| tree | 47a3d1a06fed22ed32372e3ae70d901883077a9f | |
| parent | 591fb0abe397437743aa1d54c5af48949a376722 (diff) | |
| parent | c4162e3eb4573a71ca2988bc351b352af16c4def (diff) | |
Merge pull request #225 from MHSanaei/fix-reality-sub-link
[sub] fix reality link
| -rw-r--r-- | web/service/sub.go | 37 |
1 files changed, 17 insertions, 20 deletions
diff --git a/web/service/sub.go b/web/service/sub.go index f0a5a160..06c597e8 100644 --- a/web/service/sub.go +++ b/web/service/sub.go @@ -271,17 +271,18 @@ func (s *SubService) genVlessLink(inbound *model.Inbound, email string) string { if security == "reality" { params["security"] = "reality" - realitySetting, _ := stream["realitySettings"].(map[string]interface{}) - realitySettings, _ := searchKey(realitySetting, "settings") - if realitySetting != nil { - if sniValue, ok := searchKey(realitySettings, "serverName"); ok { - params["sni"], _ = sniValue.(string) + realitySettings, _ := stream["realitySettings"].(map[string]interface{}) + if realitySettings != nil { + if sniValue, ok := searchKey(realitySettings, "serverNames"); ok { + sNames, _ := sniValue.([]interface{}) + params["sni"], _ = sNames[0].(string) } if pbkValue, ok := searchKey(realitySettings, "publicKey"); ok { params["pbk"], _ = pbkValue.(string) } if sidValue, ok := searchKey(realitySettings, "shortIds"); ok { - params["sid"], _ = sidValue.(string) + shortIds, _ := sidValue.([]interface{}) + params["sid"], _ = shortIds[0].(string) } if fpValue, ok := searchKey(realitySettings, "fingerprint"); ok { params["fp"], _ = fpValue.(string) @@ -291,11 +292,6 @@ func (s *SubService) genVlessLink(inbound *model.Inbound, email string) string { if streamNetwork == "tcp" && len(clients[clientIndex].Flow) > 0 { params["flow"] = clients[clientIndex].Flow } - - serverName, _ := realitySetting["serverName"].(string) - if serverName != "" { - address = serverName - } } if security == "xtls" { @@ -444,25 +440,26 @@ func (s *SubService) genTrojanLink(inbound *model.Inbound, email string) string if security == "reality" { params["security"] = "reality" - realitySetting, _ := stream["realitySettings"].(map[string]interface{}) - realitySettings, _ := searchKey(realitySetting, "settings") - if realitySetting != nil { - if sniValue, ok := searchKey(realitySettings, "serverName"); ok { - params["sni"], _ = sniValue.(string) + realitySettings, _ := stream["realitySettings"].(map[string]interface{}) + if realitySettings != nil { + if sniValue, ok := searchKey(realitySettings, "serverNames"); ok { + sNames, _ := sniValue.([]interface{}) + params["sni"], _ = sNames[0].(string) } if pbkValue, ok := searchKey(realitySettings, "publicKey"); ok { params["pbk"], _ = pbkValue.(string) } if sidValue, ok := searchKey(realitySettings, "shortIds"); ok { - params["sid"], _ = sidValue.(string) + shortIds, _ := sidValue.([]interface{}) + params["sid"], _ = shortIds[0].(string) } if fpValue, ok := searchKey(realitySettings, "fingerprint"); ok { params["fp"], _ = fpValue.(string) } } - serverName, _ := realitySetting["serverName"].(string) - if serverName != "" { - address = serverName + + if streamNetwork == "tcp" && len(clients[clientIndex].Flow) > 0 { + params["flow"] = clients[clientIndex].Flow } } |
