Merge pull request #225 from MHSanaei/fix-reality-sub-link

[sub] fix reality link
This commit is contained in:
Ho3ein 2023-04-12 15:29:37 +03:30 committed by GitHub
commit 7ee9133e9b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -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
} }
} }