#include "sntp.h"
void
bind_mcast(const char *ifname, SA *mcastsa, socklen_t salen, int alias)
{
#ifdef MCAST
int fd;
struct sockaddr *msa;
if (alias)
return; /* only one mcast join per interface */
printf("joining %s on %s\n", Sock_ntop_host(mcastsa, salen), ifname);
fd = Socket(mcastsa->sa_family, SOCK_DGRAM, 0);
Setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));
Bind(fd, mcastsa, salen);
Mcast_join(fd, mcastsa, salen, ifname, 0);
addrs[naddrs].addr_sa = mcastsa;
addrs[naddrs].addr_salen = salen;
addrs[naddrs].addr_ifname = ifname; /* save pointer, not string copy */
addrs[naddrs].addr_fd = fd;
addrs[naddrs].addr_flags = ADDR_MCAST;
naddrs++;
#endif
}
syntax highlighted by Code2HTML, v. 0.9.1