net: use and assert correct res state size at compile time when cgo available on darwin

Change-Id: I961bb18604dd1568ea21431545f43aa6a417b3d9
GitHub-Last-Rev: 735f3364a4
GitHub-Pull-Request: golang/go#60046
Reviewed-on: https://go-review.googlesource.com/c/go/+/493415
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Mateusz Poliwczak <mpoliwczak34@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
This commit is contained in:
Mateusz Poliwczak 2023-05-11 08:21:21 +00:00 committed by Gopher Robot
parent 04e2472895
commit 5534f04498
2 changed files with 22 additions and 1 deletions

View File

@ -119,7 +119,7 @@ func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err
func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
type ResState struct {
unexported [70]uintptr
unexported [69]uintptr
}
//go:cgo_import_dynamic libresolv_res_9_ninit res_9_ninit "/usr/lib/libresolv.9.dylib"

View File

@ -0,0 +1,21 @@
// Copyright 2023 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.
//go:build !netgo && cgo && darwin
package net
/*
#include <resolv.h>
*/
import "C"
import (
"internal/syscall/unix"
"unsafe"
)
// This will cause a compile error when the size of
// unix.ResState is too small.
type _ [unsafe.Sizeof(unix.ResState{}) - unsafe.Sizeof(C.struct___res_state{})]byte