diff --git a/dns/transport/local/resolv_darwin_cgo.go b/dns/transport/local/resolv_darwin_cgo.go index f9d82a36..e19d087f 100644 --- a/dns/transport/local/resolv_darwin_cgo.go +++ b/dns/transport/local/resolv_darwin_cgo.go @@ -20,7 +20,8 @@ import ( ) func dnsReadConfig(_ context.Context, _ string) *dnsConfig { - if C.res_init() != 0 { + var state C.res_state + if C.res_ninit(state) != 0 { return &dnsConfig{ servers: defaultNS, search: dnsDefaultSearch(), @@ -33,10 +34,10 @@ func dnsReadConfig(_ context.Context, _ string) *dnsConfig { conf := &dnsConfig{ ndots: 1, timeout: 5 * time.Second, - attempts: int(C._res.retry), + attempts: int(state.retry), } - for i := 0; i < int(C._res.nscount); i++ { - ns := C._res.nsaddr_list[i] + for i := 0; i < int(state.nscount); i++ { + ns := state.nsaddr_list[i] addr := C.inet_ntoa(ns.sin_addr) if addr == nil { continue @@ -44,7 +45,7 @@ func dnsReadConfig(_ context.Context, _ string) *dnsConfig { conf.servers = append(conf.servers, C.GoString(addr)) } for i := 0; ; i++ { - search := C._res.dnsrch[i] + search := state.dnsrch[i] if search == nil { break }