diff --git a/configure.ac b/configure.ac index 58807a81cf..9b4b2902dd 100644 --- a/configure.ac +++ b/configure.ac @@ -393,6 +393,12 @@ AC_CHECK_TYPE([struct ifreq], #include ]]) +AC_CHECK_TYPE([struct sockpeercred], + [AC_DEFINE([HAVE_STRUCT_SOCKPEERCRED], [1], + [Defined if struct sockpeercred is available])], + [], [[#include + ]]) + AC_CHECK_DECLS([ETH_FLAG_TXVLAN, ETH_FLAG_NTUPLE, ETH_FLAG_RXHASH, ETH_FLAG_LRO, ETHTOOL_GGSO, ETHTOOL_GGRO, ETHTOOL_GFLAGS, ETHTOOL_GFEATURES], [], [], [[#include diff --git a/src/rpc/virnetsocket.c b/src/rpc/virnetsocket.c index 526d2919fb..4f67c8f50c 100644 --- a/src/rpc/virnetsocket.c +++ b/src/rpc/virnetsocket.c @@ -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;