mirror of
https://github.com/SagerNet/sing-box.git
synced 2025-06-08 09:32:06 +08:00
Fix usages of wireguard listener
This commit is contained in:
parent
d8b2d5142f
commit
987899f94a
@ -333,7 +333,17 @@ func (d *DefaultDialer) ListenSerialInterfacePacket(ctx context.Context, destina
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (d *DefaultDialer) ListenPacketCompat(network, address string) (net.PacketConn, error) {
|
func (d *DefaultDialer) ListenPacketCompat(network, address string) (net.PacketConn, error) {
|
||||||
return d.udpListener.ListenPacket(context.Background(), network, address)
|
udpListener := d.udpListener
|
||||||
|
udpListener.Control = control.Append(udpListener.Control, func(network, address string, conn syscall.RawConn) error {
|
||||||
|
for _, wgControlFn := range WgControlFns {
|
||||||
|
err := wgControlFn(network, address, conn)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
})
|
||||||
|
return udpListener.ListenPacket(context.Background(), network, address)
|
||||||
}
|
}
|
||||||
|
|
||||||
func trackConn(conn net.Conn, err error) (net.Conn, error) {
|
func trackConn(conn net.Conn, err error) (net.Conn, error) {
|
||||||
|
@ -141,7 +141,7 @@ func (e *Endpoint) Start(resolve bool) error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
var bind conn.Bind
|
var bind conn.Bind
|
||||||
wgListener, isWgListener := e.options.Dialer.(conn.Listener)
|
wgListener, isWgListener := common.Cast[conn.Listener](e.options.Dialer)
|
||||||
if isWgListener {
|
if isWgListener {
|
||||||
bind = conn.NewStdNetBind(wgListener)
|
bind = conn.NewStdNetBind(wgListener)
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user