mirror of
https://github.com/SagerNet/sing-box.git
synced 2025-07-24 06:54:08 +08:00
Fix UDP DNS buffer size
This commit is contained in:
parent
b3c11109e0
commit
fc1d4e5ee8
@ -97,15 +97,19 @@ func (t *UDPTransport) Exchange(ctx context.Context, message *mDNS.Msg) (*mDNS.M
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (t *UDPTransport) exchange(ctx context.Context, message *mDNS.Msg) (*mDNS.Msg, error) {
|
func (t *UDPTransport) exchange(ctx context.Context, message *mDNS.Msg) (*mDNS.Msg, error) {
|
||||||
conn, err := t.open(ctx)
|
t.access.Lock()
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
if edns0Opt := message.IsEdns0(); edns0Opt != nil {
|
if edns0Opt := message.IsEdns0(); edns0Opt != nil {
|
||||||
if udpSize := int(edns0Opt.UDPSize()); udpSize > t.udpSize {
|
if udpSize := int(edns0Opt.UDPSize()); udpSize > t.udpSize {
|
||||||
t.udpSize = udpSize
|
t.udpSize = udpSize
|
||||||
|
close(t.done)
|
||||||
|
t.done = make(chan struct{})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
t.access.Unlock()
|
||||||
|
conn, err := t.open(ctx)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
buffer := buf.NewSize(1 + message.Len())
|
buffer := buf.NewSize(1 + message.Len())
|
||||||
defer buffer.Release()
|
defer buffer.Release()
|
||||||
exMessage := *message
|
exMessage := *message
|
||||||
|
Loading…
x
Reference in New Issue
Block a user