|  | // Copyright 2022 The Go Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style | 
|  | // license that can be found in the LICENSE file. | 
|  |  | 
|  | // res_search, for cgo systems where that is thread-safe. | 
|  |  | 
|  | //go:build cgo && !netgo && (linux || openbsd) | 
|  |  | 
|  | package net | 
|  |  | 
|  | /* | 
|  | #include <sys/types.h> | 
|  | #include <sys/socket.h> | 
|  | #include <netinet/in.h> | 
|  | #include <netdb.h> | 
|  | #include <unistd.h> | 
|  | #include <string.h> | 
|  | #include <arpa/nameser.h> | 
|  | #include <resolv.h> | 
|  |  | 
|  | #cgo !android,!openbsd LDFLAGS: -lresolv | 
|  | */ | 
|  | import "C" | 
|  |  | 
|  | type _C_struct___res_state = struct{} | 
|  |  | 
|  | func _C_res_ninit(state *_C_struct___res_state) error { | 
|  | return nil | 
|  | } | 
|  |  | 
|  | func _C_res_nclose(state *_C_struct___res_state) { | 
|  | return | 
|  | } | 
|  |  | 
|  | func _C_res_nsearch(state *_C_struct___res_state, dname *_C_char, class, typ int, ans *_C_uchar, anslen int) (int, error) { | 
|  | x, err := C.res_search(dname, C.int(class), C.int(typ), ans, C.int(anslen)) | 
|  | return int(x), err | 
|  | } |