mirror of
https://github.com/SagerNet/sing-box.git
synced 2025-08-19 16:47:35 +08:00

We mistakenly believed that `libresolv`'s `search` function worked correctly in NetworkExtension, but it seems only `getaddrinfo` does. This commit changes the behavior of the `local` DNS server in NetworkExtension to prefer DHCP, falling back to `getaddrinfo` if DHCP servers are unavailable. It's worth noting that `prefer_go` does not disable DHCP since it respects Dial Fields, but `getaddrinfo` does the opposite. The new behavior only applies to NetworkExtension, not to all scenarios (primarily command-line binaries) as it did previously. In addition, this commit also improves the DHCP DNS server to use the same robust query logic as `local`.
16 lines
344 B
Go
16 lines
344 B
Go
//go:build darwin && !with_dhcp
|
|
|
|
package local
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/sagernet/sing-box/dns"
|
|
"github.com/sagernet/sing-box/log"
|
|
N "github.com/sagernet/sing/common/network"
|
|
)
|
|
|
|
func newDHCPTransport(transportAdapter dns.TransportAdapter, ctx context.Context, dialer N.Dialer, logger log.ContextLogger) dhcpTransport {
|
|
return nil
|
|
}
|