]> Cypherpunks repositories - gostls13.git/commitdiff
net: allow build on aix/ppc64 with cgo
authorClément Chigot <clement.chigot@atos.net>
Wed, 27 Feb 2019 14:44:43 +0000 (15:44 +0100)
committerIan Lance Taylor <iant@golang.org>
Tue, 19 Mar 2019 03:19:53 +0000 (03:19 +0000)
This commit adds C support for net package for aix/ppc64.

Change-Id: I704710991fc013c6ec3511671def6791df4854f1
Reviewed-on: https://go-review.googlesource.com/c/go/+/164038
Run-TryBot: Mikio Hara <mikioh.public.networking@gmail.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Mikio Hara <mikioh.public.networking@gmail.com>
src/net/cgo_aix.go [new file with mode: 0644]
src/net/cgo_sockold.go
src/net/cgo_unix.go
src/net/cgo_unix_test.go

diff --git a/src/net/cgo_aix.go b/src/net/cgo_aix.go
new file mode 100644 (file)
index 0000000..d0ad414
--- /dev/null
@@ -0,0 +1,24 @@
+// Copyright 2019 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.
+
+// +build cgo,!netgo
+
+package net
+
+/*
+#include <sys/types.h>
+#include <sys/socket.h>
+
+#include <netdb.h>
+*/
+import "C"
+
+import "unsafe"
+
+const cgoAddrInfoFlags = C.AI_CANONNAME
+
+func cgoNameinfoPTR(b []byte, sa *C.struct_sockaddr, salen C.socklen_t) (int, error) {
+       gerrno, err := C.getnameinfo(sa, C.size_t(salen), (*C.char)(unsafe.Pointer(&b[0])), C.size_t(len(b)), nil, 0, C.NI_NAMEREQD)
+       return int(gerrno), err
+}
index e629a09f9cd5f8d7dd2b091310ba4ab3a6a695b8..e1e642bb41b77e4bdad13dea910e45911e810735 100644 (file)
@@ -3,7 +3,7 @@
 // license that can be found in the LICENSE file.
 
 // +build cgo,!netgo
-// +build darwin dragonfly freebsd netbsd openbsd
+// +build aix darwin dragonfly freebsd netbsd openbsd
 
 package net
 
index b7cbcfe77a9d36f82530264cddcf24ee31f860fc..6420fd05e7aae355e0083814eec4c195b7e94fd2 100644 (file)
@@ -3,7 +3,7 @@
 // license that can be found in the LICENSE file.
 
 // +build cgo,!netgo
-// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
 
 package net
 
@@ -14,6 +14,11 @@ package net
 #include <netdb.h>
 #include <unistd.h>
 #include <string.h>
+
+// If nothing else defined EAI_OVERFLOW, make sure it has a value.
+#ifndef EAI_OVERFLOW
+#define EAI_OVERFLOW -12
+#endif
 */
 import "C"
 
index c3eab5b3b2a5e203b6f7921832498d2d547442fe..99d79a60c46bcd633623a5ed4ec92c739fb44420 100644 (file)
@@ -3,7 +3,7 @@
 // license that can be found in the LICENSE file.
 
 // +build cgo,!netgo
-// +build darwin dragonfly freebsd linux netbsd openbsd solaris
+// +build aix darwin dragonfly freebsd linux netbsd openbsd solaris
 
 package net