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" {
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
}
}