@@ -14,7 +14,7 @@ import (
1414// Convert XrayJson to share links.
1515// VMess will generate VMessAEAD link.
1616func ConvertXrayJsonToShareLinks (xrayBytes []byte ) (string , error ) {
17- var xray conf.Config
17+ var xray * conf.Config
1818
1919 err := json .Unmarshal (xrayBytes , & xray )
2020 if err != nil {
@@ -76,7 +76,7 @@ func shareLink(proxy conf.OutboundDetourConfig) (*url.URL, error) {
7676}
7777
7878func shadowsocksLink (proxy conf.OutboundDetourConfig , link * url.URL ) error {
79- var settings conf.ShadowsocksClientConfig
79+ var settings * conf.ShadowsocksClientConfig
8080 err := json .Unmarshal (* proxy .Settings , & settings )
8181 if err != nil {
8282 return err
@@ -96,7 +96,7 @@ func shadowsocksLink(proxy conf.OutboundDetourConfig, link *url.URL) error {
9696}
9797
9898func vmessLink (proxy conf.OutboundDetourConfig , link * url.URL ) error {
99- var settings conf.VMessOutboundConfig
99+ var settings * conf.VMessOutboundConfig
100100 err := json .Unmarshal (* proxy .Settings , & settings )
101101 if err != nil {
102102 return err
@@ -110,7 +110,7 @@ func vmessLink(proxy conf.OutboundDetourConfig, link *url.URL) error {
110110 link .Host = fmt .Sprintf ("%s:%d" , vnext .Address , vnext .Port )
111111 if len (vnext .Users ) > 0 {
112112 user := vnext .Users [0 ]
113- var account conf.VMessAccount
113+ var account * conf.VMessAccount
114114 err := json .Unmarshal (user , & account )
115115 if err != nil {
116116 return err
@@ -123,7 +123,7 @@ func vmessLink(proxy conf.OutboundDetourConfig, link *url.URL) error {
123123}
124124
125125func vlessLink (proxy conf.OutboundDetourConfig , link * url.URL ) error {
126- var settings conf.VLessOutboundConfig
126+ var settings * conf.VLessOutboundConfig
127127 err := json .Unmarshal (* proxy .Settings , & settings )
128128 if err != nil {
129129 return err
@@ -137,7 +137,7 @@ func vlessLink(proxy conf.OutboundDetourConfig, link *url.URL) error {
137137 link .Host = fmt .Sprintf ("%s:%d" , vnext .Address , vnext .Port )
138138 if len (vnext .Users ) > 0 {
139139 user := vnext .Users [0 ]
140- var account vless.Account
140+ var account * vless.Account
141141 err := json .Unmarshal (user , & account )
142142 if err != nil {
143143 return err
@@ -155,7 +155,7 @@ func vlessLink(proxy conf.OutboundDetourConfig, link *url.URL) error {
155155}
156156
157157func socksLink (proxy conf.OutboundDetourConfig , link * url.URL ) error {
158- var settings conf.SocksClientConfig
158+ var settings * conf.SocksClientConfig
159159 err := json .Unmarshal (* proxy .Settings , & settings )
160160 if err != nil {
161161 return err
@@ -172,7 +172,7 @@ func socksLink(proxy conf.OutboundDetourConfig, link *url.URL) error {
172172 link .User = url .User (username )
173173 } else {
174174 user := server .Users [0 ]
175- var account conf.SocksAccount
175+ var account * conf.SocksAccount
176176 err := json .Unmarshal (user , & account )
177177 if err != nil {
178178 return err
@@ -186,7 +186,7 @@ func socksLink(proxy conf.OutboundDetourConfig, link *url.URL) error {
186186}
187187
188188func trojanLink (proxy conf.OutboundDetourConfig , link * url.URL ) error {
189- var settings conf.TrojanClientConfig
189+ var settings * conf.TrojanClientConfig
190190 err := json .Unmarshal (* proxy .Settings , & settings )
191191 if err != nil {
192192 return err
@@ -231,7 +231,7 @@ func streamSettingsQuery(proxy conf.OutboundDetourConfig, link *url.URL) {
231231 if headerConfig == nil {
232232 break
233233 }
234- var header XrayRawSettingsHeader
234+ var header * XrayRawSettingsHeader
235235 err := json .Unmarshal (headerConfig , & header )
236236 if err != nil {
237237 break
@@ -268,7 +268,7 @@ func streamSettingsQuery(proxy conf.OutboundDetourConfig, link *url.URL) {
268268 if headerConfig == nil {
269269 break
270270 }
271- var header XrayFakeHeader
271+ var header * XrayFakeHeader
272272 err := json .Unmarshal (headerConfig , & header )
273273 if err != nil {
274274 break
@@ -338,7 +338,14 @@ func streamSettingsQuery(proxy conf.OutboundDetourConfig, link *url.URL) {
338338 }
339339 extra := streamSettings .XHTTPSettings .Extra
340340 if extra != nil {
341- query = addQuery (query , "extra" , string (extra ))
341+ var extraConfig * conf.SplitHTTPConfig
342+ err := json .Unmarshal (extra , & extraConfig )
343+ if err == nil {
344+ extraBytes , err := json .Marshal (extraConfig )
345+ if err == nil {
346+ query = addQuery (query , "extra" , string (extraBytes ))
347+ }
348+ }
342349 }
343350 }
344351
@@ -379,7 +386,7 @@ func streamSettingsQuery(proxy conf.OutboundDetourConfig, link *url.URL) {
379386 if len (sni ) > 0 {
380387 query = addQuery (query , "sni" , sni )
381388 }
382- pbk := streamSettings .REALITYSettings .PublicKey
389+ pbk := streamSettings .REALITYSettings .Password
383390 if len (pbk ) > 0 {
384391 query = addQuery (query , "pbk" , pbk )
385392 }
0 commit comments