mirror of
https://gitclone.com/github.com/MetaCubeX/Clash.Meta
synced 2025-02-23 10:33:19 +08:00
chore: reslove udp host after rule matching
This commit is contained in:
parent
2bba8aa14a
commit
8cf14bb67e
@ -328,16 +328,6 @@ func handleUDPConn(packet C.PacketAdapter) {
|
|||||||
sniffer.Dispatcher.UDPSniff(packet)
|
sniffer.Dispatcher.UDPSniff(packet)
|
||||||
}
|
}
|
||||||
|
|
||||||
// local resolve UDP dns
|
|
||||||
if !metadata.Resolved() {
|
|
||||||
ip, err := resolver.ResolveIP(context.Background(), metadata.Host)
|
|
||||||
if err != nil {
|
|
||||||
packet.Drop()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
metadata.DstIP = ip
|
|
||||||
}
|
|
||||||
|
|
||||||
key := packet.LocalAddr().String()
|
key := packet.LocalAddr().String()
|
||||||
|
|
||||||
handle := func() bool {
|
handle := func() bool {
|
||||||
@ -381,6 +371,16 @@ func handleUDPConn(packet C.PacketAdapter) {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// local resolve UDP dns
|
||||||
|
if !metadata.Resolved() && proxy.Type() != C.Reject && proxy.Type() != C.RejectDrop {
|
||||||
|
ip, err := resolver.ResolveIP(context.Background(), metadata.Host)
|
||||||
|
if err != nil {
|
||||||
|
packet.Drop()
|
||||||
|
return
|
||||||
|
}
|
||||||
|
metadata.DstIP = ip
|
||||||
|
}
|
||||||
|
|
||||||
ctx, cancel := context.WithTimeout(context.Background(), C.DefaultUDPTimeout)
|
ctx, cancel := context.WithTimeout(context.Background(), C.DefaultUDPTimeout)
|
||||||
defer cancel()
|
defer cancel()
|
||||||
rawPc, err := retry(ctx, func(ctx context.Context) (C.PacketConn, error) {
|
rawPc, err := retry(ctx, func(ctx context.Context) (C.PacketConn, error) {
|
||||||
|
Loading…
Reference in New Issue
Block a user