Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/MHSanaei/3x-ui.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMHSanaei <ho3ein.sanaei@gmail.com>2023-04-19 11:25:31 +0300
committerMHSanaei <ho3ein.sanaei@gmail.com>2023-04-19 11:25:31 +0300
commit4d479102ad8ecf309ec340f9e0778f1231788185 (patch)
tree282c7041b7158f12450426dc8757038df0b73071
parent9d02f455cc7d7d465e951f70483efdea178fd7f9 (diff)
reality link bug fix
Co-Authored-By: Alireza Ahmadi <alireza7@gmail.com>
-rw-r--r--web/service/sub.go34
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
+ }
}
}