]> xenbits.xensource.com Git - libvirt.git/commitdiff
Use struct sockpeercred when available
authorJasper Lievisse Adriaanse <jasper@openbsd.org>
Thu, 7 Jan 2016 21:31:17 +0000 (00:31 +0300)
committerRoman Bogorodskiy <bogorodskiy@gmail.com>
Mon, 11 Jan 2016 16:56:06 +0000 (19:56 +0300)
OpenBSD uses 'struct sockpeercred' instead of 'struct ucred'. Add a
configure check that detects its presence and use if in the code that
could be compiled on OpenBSD.

Signed-off-by: Roman Bogorodskiy <bogorodskiy@gmail.com>
configure.ac
src/rpc/virnetsocket.c

index 58807a81cf7cc5ae4630ea567afa1027379a9733..9b4b2902dda694ed9a647cc959b63e5848d59baf 100644 (file)
@@ -393,6 +393,12 @@ AC_CHECK_TYPE([struct ifreq],
         #include <net/if.h>
   ]])
 
+AC_CHECK_TYPE([struct sockpeercred],
+  [AC_DEFINE([HAVE_STRUCT_SOCKPEERCRED], [1],
+    [Defined if struct sockpeercred is available])],
+  [], [[#include <sys/socket.h>
+  ]])
+
 AC_CHECK_DECLS([ETH_FLAG_TXVLAN, ETH_FLAG_NTUPLE, ETH_FLAG_RXHASH, ETH_FLAG_LRO,
                 ETHTOOL_GGSO, ETHTOOL_GGRO, ETHTOOL_GFLAGS, ETHTOOL_GFEATURES],
   [], [], [[#include <linux/ethtool.h>
index 526d2919fb754e75bd5ac27b0a49251c755fc3db..4f67c8f50c0b5913540d5da05be53e29b0a7a49a 100644 (file)
@@ -1259,7 +1259,11 @@ int virNetSocketGetUNIXIdentity(virNetSocketPtr sock,
                                 pid_t *pid,
                                 unsigned long long *timestamp)
 {
+# if defined(HAVE_STRUCT_SOCKPEERCRED)
+    struct sockpeercred cr;
+# else
     struct ucred cr;
+# endif
     socklen_t cr_len = sizeof(cr);
     int ret = -1;