diff options
| author | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-04-19 11:25:31 +0300 |
|---|---|---|
| committer | MHSanaei <ho3ein.sanaei@gmail.com> | 2023-04-19 11:25:31 +0300 |
| commit | 4d479102ad8ecf309ec340f9e0778f1231788185 (patch) | |
| tree | 282c7041b7158f12450426dc8757038df0b73071 /web | |
| parent | 9d02f455cc7d7d465e951f70483efdea178fd7f9 (diff) | |
reality link bug fix
Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
Diffstat (limited to 'web')
| -rw-r--r-- | web/service/sub.go | 34 |
1 files changed, 25 insertions, 9 deletions
diff --git a/web/service/sub.go b/web/service/sub.go index 3041b721..91abb12a 100644 --- a/web/service/sub.go +++ b/web/service/sub.go @@ -313,21 +313,29 @@ func (s *SubService) genVlessLink(inbound *model.Inbound, email string) string { if security == "reality" { params["security"] = "reality" - realitySettings, _ := stream["realitySettings"].(map[string]interface{}) - if realitySettings != nil { - if sniValue, ok := searchKey(realitySettings, "serverNames"); ok { + realitySetting, _ := stream["realitySettings"].(map[string]interface{}) + realitySettings, _ := searchKey(realitySetting, "settings") + if realitySetting != nil { + if sniValue, ok := searchKey(realitySetting, "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 { + if sidValue, ok := searchKey(realitySetting, "shortIds"); ok { shortIds, _ := sidValue.([]interface{}) params["sid"], _ = shortIds[0].(string) } if fpValue, ok := searchKey(realitySettings, "fingerprint"); ok { - params["fp"], _ = fpValue.(string) + if fp, ok := fpValue.(string); ok && len(fp) > 0 { + params["fp"] = fp + } + } + if serverName, ok := searchKey(realitySettings, "serverName"); ok { + if sname, ok := serverName.(string); ok && len(sname) > 0 { + address = sname + } } } @@ -482,9 +490,10 @@ func (s *SubService) genTrojanLink(inbound *model.Inbound, email string) string if security == "reality" { params["security"] = "reality" - realitySettings, _ := stream["realitySettings"].(map[string]interface{}) - if realitySettings != nil { - if sniValue, ok := searchKey(realitySettings, "serverNames"); ok { + realitySetting, _ := stream["realitySettings"].(map[string]interface{}) + realitySettings, _ := searchKey(realitySetting, "settings") + if realitySetting != nil { + if sniValue, ok := searchKey(realitySetting, "serverNames"); ok { sNames, _ := sniValue.([]interface{}) params["sni"], _ = sNames[0].(string) } @@ -496,7 +505,14 @@ func (s *SubService) genTrojanLink(inbound *model.Inbound, email string) string params["sid"], _ = shortIds[0].(string) } if fpValue, ok := searchKey(realitySettings, "fingerprint"); ok { - params["fp"], _ = fpValue.(string) + if fp, ok := fpValue.(string); ok && len(fp) > 0 { + params["fp"] = fp + } + } + if serverName, ok := searchKey(realitySettings, "serverName"); ok { + if sname, ok := serverName.(string); ok && len(sname) > 0 { + address = sname + } } } |
