Index: illumos-rpcbind/usr/src/cmd/rpcbind/rpcbind.h =================================================================== --- illumos-rpcbind.orig/usr/src/cmd/rpcbind/rpcbind.h 2014-05-03 18:27:55.050416665 +0400 +++ illumos-rpcbind/usr/src/cmd/rpcbind/rpcbind.h 2014-05-03 18:29:35.542162039 +0400 @@ -50,6 +50,43 @@ #include #include +#include +#include + +/* from illumos libwrap */ +typedef struct sockaddr_gen { + union { + struct sockaddr _sg_sa; + struct sockaddr_in _sg_sin; + struct sockaddr_in6 _sg_sin6; + } sg_addr; +} sockaddr_gen; + +typedef union gen_addr { + struct in_addr ga_in; +#ifdef HAVE_IPV6 + struct in6_addr ga_in6; +#endif +} gen_addr; +#define sg_sa sg_addr._sg_sa +#define sg_sin sg_addr._sg_sin +#define sg_sin6 sg_addr._sg_sin6 +#define sg_family sg_sa.sa_family +#define SGADDRSZ(sag) ((sag)->sg_family == AF_INET6 ? \ + sizeof (struct in6_addr) : \ + sizeof (struct in_addr)) +#define SGSOCKADDRSZ(sag) ((sag)->sg_family == AF_INET6 ? \ + sizeof (struct sockaddr_in6) : \ + sizeof (struct sockaddr_in)) +#define SGPORT(sag) (*((sag)->sg_family == AF_INET6 ? \ + &(sag)->sg_sin6.sin6_port : \ + &(sag)->sg_sin.sin_port)) +#define SGADDRP(sag) (((sag)->sg_family == AF_INET6 ? \ + (char *) &(sag)->sg_sin6.sin6_addr : \ + (char *) &(sag)->sg_sin.sin_addr)) +#define SGFAM(sag) ((sag)->sg_family == AF_INET6 ? \ + AF_INET6 : AF_INET) + #ifdef __cplusplus extern "C" { #endif Index: illumos-rpcbind/usr/src/cmd/rpcbind/rpcb_check.c =================================================================== --- illumos-rpcbind.orig/usr/src/cmd/rpcbind/rpcb_check.c 2014-05-03 18:27:55.025248817 +0400 +++ illumos-rpcbind/usr/src/cmd/rpcbind/rpcb_check.c 2014-05-03 18:30:20.177608332 +0400 @@ -218,8 +218,8 @@ sizeof (buf)); (void) mutex_lock(&hosts_ctl_lock); - if (hosts_ctl("rpcbind", addr_string, - addr_string, "") == 0) + if (hosts_ctl("rpcbind", (char*)addr_string, + (char*)addr_string, "") == 0) res = B_FALSE; (void) mutex_unlock(&hosts_ctl_lock); }