#include "unp.h"
int
mcast_get_if(int sockfd)
{
switch (sockfd_to_family(sockfd)) {
case AF_INET: {
/* TODO: similar to mcast_set_if() */
return(-1);
}
#ifdef IPV6
case AF_INET6: {
u_int index;
socklen_t len;
len = sizeof(index);
if (getsockopt(sockfd, IPPROTO_IPV6, IPV6_MULTICAST_IF,
&index, &len) < 0)
return(-1);
return(index);
}
#endif
default:
errno = EPROTONOSUPPORT;
return(-1);
}
}
int
Mcast_get_if(int sockfd)
{
int rc;
if ( (rc = mcast_get_if(sockfd)) < 0)
err_sys("mcast_get_if error");
return(rc);
}
syntax highlighted by Code2HTML, v. 0.9.1