mirror of
https://github.com/shtorm-7/sing-box-extended.git
synced 2026-07-17 21:31:04 +03:00
Fix ping timeout
This commit is contained in:
@@ -10,6 +10,7 @@ const (
|
|||||||
ReadPayloadTimeout = 300 * time.Millisecond
|
ReadPayloadTimeout = 300 * time.Millisecond
|
||||||
DNSTimeout = 10 * time.Second
|
DNSTimeout = 10 * time.Second
|
||||||
UDPTimeout = 5 * time.Minute
|
UDPTimeout = 5 * time.Minute
|
||||||
|
ICMPTimeout = 10 * time.Second
|
||||||
DefaultURLTestInterval = 3 * time.Minute
|
DefaultURLTestInterval = 3 * time.Minute
|
||||||
DefaultURLTestIdleTimeout = 30 * time.Minute
|
DefaultURLTestIdleTimeout = 30 * time.Minute
|
||||||
StartTimeout = 10 * time.Second
|
StartTimeout = 10 * time.Second
|
||||||
|
|||||||
@@ -106,7 +106,8 @@ type Endpoint struct {
|
|||||||
relayServerPort *uint16
|
relayServerPort *uint16
|
||||||
relayServerStaticEndpoints []netip.AddrPort
|
relayServerStaticEndpoints []netip.AddrPort
|
||||||
|
|
||||||
udpTimeout time.Duration
|
udpTimeout time.Duration
|
||||||
|
icmpTimeout time.Duration
|
||||||
|
|
||||||
systemInterface bool
|
systemInterface bool
|
||||||
systemInterfaceName string
|
systemInterfaceName string
|
||||||
@@ -258,6 +259,7 @@ func NewEndpoint(ctx context.Context, router adapter.Router, logger log.ContextL
|
|||||||
relayServerPort: options.RelayServerPort,
|
relayServerPort: options.RelayServerPort,
|
||||||
relayServerStaticEndpoints: options.RelayServerStaticEndpoints,
|
relayServerStaticEndpoints: options.RelayServerStaticEndpoints,
|
||||||
udpTimeout: udpTimeout,
|
udpTimeout: udpTimeout,
|
||||||
|
icmpTimeout: C.ICMPTimeout,
|
||||||
systemInterface: options.SystemInterface,
|
systemInterface: options.SystemInterface,
|
||||||
systemInterfaceName: options.SystemInterfaceName,
|
systemInterfaceName: options.SystemInterfaceName,
|
||||||
systemInterfaceMTU: options.SystemInterfaceMTU,
|
systemInterfaceMTU: options.SystemInterfaceMTU,
|
||||||
@@ -390,7 +392,7 @@ func (t *Endpoint) postStart() error {
|
|||||||
if gErr != nil {
|
if gErr != nil {
|
||||||
return gonet.TranslateNetstackError(gErr)
|
return gonet.TranslateNetstackError(gErr)
|
||||||
}
|
}
|
||||||
icmpForwarder := tun.NewICMPForwarder(t.ctx, ipStack, t, t.udpTimeout)
|
icmpForwarder := tun.NewICMPForwarder(t.ctx, ipStack, t, t.icmpTimeout)
|
||||||
ipStack.SetTransportProtocolHandler(icmp.ProtocolNumber4, icmpForwarder.HandlePacket)
|
ipStack.SetTransportProtocolHandler(icmp.ProtocolNumber4, icmpForwarder.HandlePacket)
|
||||||
ipStack.SetTransportProtocolHandler(icmp.ProtocolNumber6, icmpForwarder.HandlePacket)
|
ipStack.SetTransportProtocolHandler(icmp.ProtocolNumber6, icmpForwarder.HandlePacket)
|
||||||
t.stack = ipStack
|
t.stack = ipStack
|
||||||
|
|||||||
@@ -380,6 +380,7 @@ func (t *Inbound) Start(stage adapter.StartStage) error {
|
|||||||
Tun: tunInterface,
|
Tun: tunInterface,
|
||||||
TunOptions: t.tunOptions,
|
TunOptions: t.tunOptions,
|
||||||
UDPTimeout: t.udpTimeout,
|
UDPTimeout: t.udpTimeout,
|
||||||
|
ICMPTimeout: C.ICMPTimeout,
|
||||||
Handler: t,
|
Handler: t,
|
||||||
Logger: t.logger,
|
Logger: t.logger,
|
||||||
ForwarderBindInterface: forwarderBindInterface,
|
ForwarderBindInterface: forwarderBindInterface,
|
||||||
|
|||||||
@@ -75,12 +75,13 @@ func NewEndpoint(ctx context.Context, router adapter.Router, logger log.ContextL
|
|||||||
udpTimeout = C.UDPTimeout
|
udpTimeout = C.UDPTimeout
|
||||||
}
|
}
|
||||||
wgEndpoint, err := wireguard.NewEndpoint(wireguard.EndpointOptions{
|
wgEndpoint, err := wireguard.NewEndpoint(wireguard.EndpointOptions{
|
||||||
Context: ctx,
|
Context: ctx,
|
||||||
Logger: logger,
|
Logger: logger,
|
||||||
System: options.System,
|
System: options.System,
|
||||||
Handler: ep,
|
Handler: ep,
|
||||||
UDPTimeout: udpTimeout,
|
UDPTimeout: udpTimeout,
|
||||||
Dialer: outboundDialer,
|
ICMPTimeout: C.ICMPTimeout,
|
||||||
|
Dialer: outboundDialer,
|
||||||
CreateDialer: func(interfaceName string) N.Dialer {
|
CreateDialer: func(interfaceName string) N.Dialer {
|
||||||
return common.Must1(dialer.NewDefault(ctx, option.DialerOptions{
|
return common.Must1(dialer.NewDefault(ctx, option.DialerOptions{
|
||||||
BindInterface: interfaceName,
|
BindInterface: interfaceName,
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ type DeviceOptions struct {
|
|||||||
System bool
|
System bool
|
||||||
Handler tun.Handler
|
Handler tun.Handler
|
||||||
UDPTimeout time.Duration
|
UDPTimeout time.Duration
|
||||||
|
ICMPTimeout time.Duration
|
||||||
CreateDialer func(interfaceName string) N.Dialer
|
CreateDialer func(interfaceName string) N.Dialer
|
||||||
Name string
|
Name string
|
||||||
MTU uint32
|
MTU uint32
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ func newStackDevice(options DeviceOptions) (*stackDevice, error) {
|
|||||||
if options.Handler != nil {
|
if options.Handler != nil {
|
||||||
ipStack.SetTransportProtocolHandler(tcp.ProtocolNumber, tun.NewTCPForwarder(options.Context, ipStack, options.Handler).HandlePacket)
|
ipStack.SetTransportProtocolHandler(tcp.ProtocolNumber, tun.NewTCPForwarder(options.Context, ipStack, options.Handler).HandlePacket)
|
||||||
ipStack.SetTransportProtocolHandler(udp.ProtocolNumber, tun.NewUDPForwarder(options.Context, ipStack, options.Handler, options.UDPTimeout).HandlePacket)
|
ipStack.SetTransportProtocolHandler(udp.ProtocolNumber, tun.NewUDPForwarder(options.Context, ipStack, options.Handler, options.UDPTimeout).HandlePacket)
|
||||||
icmpForwarder := tun.NewICMPForwarder(options.Context, ipStack, options.Handler, options.UDPTimeout)
|
icmpForwarder := tun.NewICMPForwarder(options.Context, ipStack, options.Handler, options.ICMPTimeout)
|
||||||
icmpForwarder.SetLocalAddresses(inet4Address, inet6Address)
|
icmpForwarder.SetLocalAddresses(inet4Address, inet6Address)
|
||||||
ipStack.SetTransportProtocolHandler(icmp.ProtocolNumber4, icmpForwarder.HandlePacket)
|
ipStack.SetTransportProtocolHandler(icmp.ProtocolNumber4, icmpForwarder.HandlePacket)
|
||||||
ipStack.SetTransportProtocolHandler(icmp.ProtocolNumber6, icmpForwarder.HandlePacket)
|
ipStack.SetTransportProtocolHandler(icmp.ProtocolNumber6, icmpForwarder.HandlePacket)
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ func newSystemStackDevice(options DeviceOptions) (*systemStackDevice, error) {
|
|||||||
if options.Handler != nil {
|
if options.Handler != nil {
|
||||||
ipStack.SetTransportProtocolHandler(tcp.ProtocolNumber, tun.NewTCPForwarder(options.Context, ipStack, options.Handler).HandlePacket)
|
ipStack.SetTransportProtocolHandler(tcp.ProtocolNumber, tun.NewTCPForwarder(options.Context, ipStack, options.Handler).HandlePacket)
|
||||||
ipStack.SetTransportProtocolHandler(udp.ProtocolNumber, tun.NewUDPForwarder(options.Context, ipStack, options.Handler, options.UDPTimeout).HandlePacket)
|
ipStack.SetTransportProtocolHandler(udp.ProtocolNumber, tun.NewUDPForwarder(options.Context, ipStack, options.Handler, options.UDPTimeout).HandlePacket)
|
||||||
icmpForwarder := tun.NewICMPForwarder(options.Context, ipStack, options.Handler, options.UDPTimeout)
|
icmpForwarder := tun.NewICMPForwarder(options.Context, ipStack, options.Handler, options.ICMPTimeout)
|
||||||
icmpForwarder.SetLocalAddresses(inet4Address, inet6Address)
|
icmpForwarder.SetLocalAddresses(inet4Address, inet6Address)
|
||||||
ipStack.SetTransportProtocolHandler(icmp.ProtocolNumber4, icmpForwarder.HandlePacket)
|
ipStack.SetTransportProtocolHandler(icmp.ProtocolNumber4, icmpForwarder.HandlePacket)
|
||||||
ipStack.SetTransportProtocolHandler(icmp.ProtocolNumber6, icmpForwarder.HandlePacket)
|
ipStack.SetTransportProtocolHandler(icmp.ProtocolNumber6, icmpForwarder.HandlePacket)
|
||||||
|
|||||||
@@ -109,6 +109,7 @@ func NewEndpoint(options EndpointOptions) (*Endpoint, error) {
|
|||||||
System: options.System,
|
System: options.System,
|
||||||
Handler: options.Handler,
|
Handler: options.Handler,
|
||||||
UDPTimeout: options.UDPTimeout,
|
UDPTimeout: options.UDPTimeout,
|
||||||
|
ICMPTimeout: options.ICMPTimeout,
|
||||||
CreateDialer: options.CreateDialer,
|
CreateDialer: options.CreateDialer,
|
||||||
Name: options.Name,
|
Name: options.Name,
|
||||||
MTU: options.MTU,
|
MTU: options.MTU,
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ type EndpointOptions struct {
|
|||||||
System bool
|
System bool
|
||||||
Handler tun.Handler
|
Handler tun.Handler
|
||||||
UDPTimeout time.Duration
|
UDPTimeout time.Duration
|
||||||
|
ICMPTimeout time.Duration
|
||||||
Dialer N.Dialer
|
Dialer N.Dialer
|
||||||
CreateDialer func(interfaceName string) N.Dialer
|
CreateDialer func(interfaceName string) N.Dialer
|
||||||
Name string
|
Name string
|
||||||
|
|||||||
Reference in New Issue
Block a user