Răsfoiți Sursa

Fix wireguard `listen_port`

世界 5 luni în urmă
părinte
comite
fc81bd9a5b
3 a modificat fișierele cu 3 adăugiri și 6 ștergeri
  1. 0 1
      option/outbound.go
  2. 2 2
      protocol/wireguard/endpoint.go
  3. 1 3
      protocol/wireguard/outbound.go

+ 0 - 1
option/outbound.go

@@ -83,7 +83,6 @@ type DialerOptions struct {
 	NetworkType         badoption.Listable[InterfaceType] `json:"network_type,omitempty"`
 	FallbackNetworkType badoption.Listable[InterfaceType] `json:"fallback_network_type,omitempty"`
 	FallbackDelay       badoption.Duration                `json:"fallback_delay,omitempty"`
-	IsWireGuardListener bool                              `json:"-"`
 
 	// Deprecated: migrated to domain resolver
 	DomainStrategy DomainStrategy `json:"domain_strategy,omitempty"`

+ 2 - 2
protocol/wireguard/endpoint.go

@@ -45,8 +45,8 @@ func NewEndpoint(ctx context.Context, router adapter.Router, logger log.ContextL
 		logger:         logger,
 		localAddresses: options.Address,
 	}
-	if options.Detour == "" {
-		options.IsWireGuardListener = true
+	if options.Detour != "" && options.ListenPort != 0 {
+		return nil, E.New("`listen_port` is conflict with `detour`")
 	}
 	outboundDialer, err := dialer.NewWithOptions(dialer.Options{
 		Context: ctx,

+ 1 - 3
protocol/wireguard/outbound.go

@@ -46,9 +46,7 @@ func NewOutbound(ctx context.Context, router adapter.Router, logger log.ContextL
 		logger:         logger,
 		localAddresses: options.LocalAddress,
 	}
-	if options.Detour == "" {
-		options.IsWireGuardListener = true
-	} else if options.GSO {
+	if options.Detour != "" && options.GSO {
 		return nil, E.New("gso is conflict with detour")
 	}
 	outboundDialer, err := dialer.NewWithOptions(dialer.Options{