mirror of
https://github.com/MHSanaei/3x-ui.git
synced 2025-04-20 05:52:24 +00:00
Merge pull request #225 from MHSanaei/fix-reality-sub-link
[sub] fix reality link
This commit is contained in:
commit
7ee9133e9b
1 changed files with 17 additions and 20 deletions
|
@ -271,17 +271,18 @@ func (s *SubService) genVlessLink(inbound *model.Inbound, email string) string {
|
||||||
|
|
||||||
if security == "reality" {
|
if security == "reality" {
|
||||||
params["security"] = "reality"
|
params["security"] = "reality"
|
||||||
realitySetting, _ := stream["realitySettings"].(map[string]interface{})
|
realitySettings, _ := stream["realitySettings"].(map[string]interface{})
|
||||||
realitySettings, _ := searchKey(realitySetting, "settings")
|
if realitySettings != nil {
|
||||||
if realitySetting != nil {
|
if sniValue, ok := searchKey(realitySettings, "serverNames"); ok {
|
||||||
if sniValue, ok := searchKey(realitySettings, "serverName"); ok {
|
sNames, _ := sniValue.([]interface{})
|
||||||
params["sni"], _ = sniValue.(string)
|
params["sni"], _ = sNames[0].(string)
|
||||||
}
|
}
|
||||||
if pbkValue, ok := searchKey(realitySettings, "publicKey"); ok {
|
if pbkValue, ok := searchKey(realitySettings, "publicKey"); ok {
|
||||||
params["pbk"], _ = pbkValue.(string)
|
params["pbk"], _ = pbkValue.(string)
|
||||||
}
|
}
|
||||||
if sidValue, ok := searchKey(realitySettings, "shortIds"); ok {
|
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 {
|
if fpValue, ok := searchKey(realitySettings, "fingerprint"); ok {
|
||||||
params["fp"], _ = fpValue.(string)
|
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 {
|
if streamNetwork == "tcp" && len(clients[clientIndex].Flow) > 0 {
|
||||||
params["flow"] = clients[clientIndex].Flow
|
params["flow"] = clients[clientIndex].Flow
|
||||||
}
|
}
|
||||||
|
|
||||||
serverName, _ := realitySetting["serverName"].(string)
|
|
||||||
if serverName != "" {
|
|
||||||
address = serverName
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if security == "xtls" {
|
if security == "xtls" {
|
||||||
|
@ -444,25 +440,26 @@ func (s *SubService) genTrojanLink(inbound *model.Inbound, email string) string
|
||||||
|
|
||||||
if security == "reality" {
|
if security == "reality" {
|
||||||
params["security"] = "reality"
|
params["security"] = "reality"
|
||||||
realitySetting, _ := stream["realitySettings"].(map[string]interface{})
|
realitySettings, _ := stream["realitySettings"].(map[string]interface{})
|
||||||
realitySettings, _ := searchKey(realitySetting, "settings")
|
if realitySettings != nil {
|
||||||
if realitySetting != nil {
|
if sniValue, ok := searchKey(realitySettings, "serverNames"); ok {
|
||||||
if sniValue, ok := searchKey(realitySettings, "serverName"); ok {
|
sNames, _ := sniValue.([]interface{})
|
||||||
params["sni"], _ = sniValue.(string)
|
params["sni"], _ = sNames[0].(string)
|
||||||
}
|
}
|
||||||
if pbkValue, ok := searchKey(realitySettings, "publicKey"); ok {
|
if pbkValue, ok := searchKey(realitySettings, "publicKey"); ok {
|
||||||
params["pbk"], _ = pbkValue.(string)
|
params["pbk"], _ = pbkValue.(string)
|
||||||
}
|
}
|
||||||
if sidValue, ok := searchKey(realitySettings, "shortIds"); ok {
|
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 {
|
if fpValue, ok := searchKey(realitySettings, "fingerprint"); ok {
|
||||||
params["fp"], _ = fpValue.(string)
|
params["fp"], _ = fpValue.(string)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
serverName, _ := realitySetting["serverName"].(string)
|
|
||||||
if serverName != "" {
|
if streamNetwork == "tcp" && len(clients[clientIndex].Flow) > 0 {
|
||||||
address = serverName
|
params["flow"] = clients[clientIndex].Flow
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue