|
@@ -20,7 +20,8 @@ import (
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
func dnsReadConfig(_ context.Context, _ string) *dnsConfig {
|
|
func dnsReadConfig(_ context.Context, _ string) *dnsConfig {
|
|
|
- if C.res_init() != 0 {
|
|
|
|
|
|
|
+ var state C.res_state
|
|
|
|
|
+ if C.res_ninit(state) != 0 {
|
|
|
return &dnsConfig{
|
|
return &dnsConfig{
|
|
|
servers: defaultNS,
|
|
servers: defaultNS,
|
|
|
search: dnsDefaultSearch(),
|
|
search: dnsDefaultSearch(),
|
|
@@ -33,10 +34,10 @@ func dnsReadConfig(_ context.Context, _ string) *dnsConfig {
|
|
|
conf := &dnsConfig{
|
|
conf := &dnsConfig{
|
|
|
ndots: 1,
|
|
ndots: 1,
|
|
|
timeout: 5 * time.Second,
|
|
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)
|
|
addr := C.inet_ntoa(ns.sin_addr)
|
|
|
if addr == nil {
|
|
if addr == nil {
|
|
|
continue
|
|
continue
|
|
@@ -44,7 +45,7 @@ func dnsReadConfig(_ context.Context, _ string) *dnsConfig {
|
|
|
conf.servers = append(conf.servers, C.GoString(addr))
|
|
conf.servers = append(conf.servers, C.GoString(addr))
|
|
|
}
|
|
}
|
|
|
for i := 0; ; i++ {
|
|
for i := 0; ; i++ {
|
|
|
- search := C._res.dnsrch[i]
|
|
|
|
|
|
|
+ search := state.dnsrch[i]
|
|
|
if search == nil {
|
|
if search == nil {
|
|
|
break
|
|
break
|
|
|
}
|
|
}
|