mirror of
https://github.com/shtorm-7/sing-box-extended.git
synced 2026-05-14 00:51:12 +03:00
Fix creating config for WARP
This commit is contained in:
@@ -68,7 +68,7 @@ func NewEndpoint(ctx context.Context, router adapter.Router, logger log.ContextL
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
if config == nil {
|
if config == nil {
|
||||||
config, err := endpoint.createConfig()
|
config, err = endpoint.createConfig()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
logger.ErrorContext(ctx, err)
|
logger.ErrorContext(ctx, err)
|
||||||
return
|
return
|
||||||
@@ -183,6 +183,16 @@ func (w *Endpoint) isEndpointInitialized(ctx context.Context) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (w *Endpoint) createConfig() (*Config, error) {
|
func (w *Endpoint) createConfig() (*Config, error) {
|
||||||
|
opts := make([]cloudflare.CloudflareApiOption, 0, 1)
|
||||||
|
if w.options.Profile.Detour != "" {
|
||||||
|
detour, ok := service.FromContext[adapter.OutboundManager](w.ctx).Outbound(w.options.Profile.Detour)
|
||||||
|
if !ok {
|
||||||
|
return nil, E.New("outbound detour not found: ", w.options.Profile.Detour)
|
||||||
|
}
|
||||||
|
opts = append(opts, cloudflare.WithDialContext(func(ctx context.Context, network, addr string) (net.Conn, error) {
|
||||||
|
return detour.DialContext(ctx, network, M.ParseSocksaddr(addr))
|
||||||
|
}))
|
||||||
|
}
|
||||||
var privateKey wgtypes.Key
|
var privateKey wgtypes.Key
|
||||||
var err error
|
var err error
|
||||||
if w.options.Profile.PrivateKey != "" {
|
if w.options.Profile.PrivateKey != "" {
|
||||||
@@ -196,16 +206,6 @@ func (w *Endpoint) createConfig() (*Config, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
opts := make([]cloudflare.CloudflareApiOption, 0, 1)
|
|
||||||
if w.options.Profile.Detour != "" {
|
|
||||||
detour, ok := service.FromContext[adapter.OutboundManager](w.ctx).Outbound(w.options.Profile.Detour)
|
|
||||||
if !ok {
|
|
||||||
return nil, E.New("outbound detour not found: ", w.options.Profile.Detour)
|
|
||||||
}
|
|
||||||
opts = append(opts, cloudflare.WithDialContext(func(ctx context.Context, network, addr string) (net.Conn, error) {
|
|
||||||
return detour.DialContext(ctx, network, M.ParseSocksaddr(addr))
|
|
||||||
}))
|
|
||||||
}
|
|
||||||
api := cloudflare.NewCloudflareApi(opts...)
|
api := cloudflare.NewCloudflareApi(opts...)
|
||||||
var profile *cloudflare.CloudflareProfile
|
var profile *cloudflare.CloudflareProfile
|
||||||
if w.options.Profile.AuthToken != "" && w.options.Profile.ID != "" {
|
if w.options.Profile.AuthToken != "" && w.options.Profile.ID != "" {
|
||||||
|
|||||||
Reference in New Issue
Block a user