mreq.imr_multiaddr = group;
if(setsockopt(fd, SOL_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)))
return(-1);
+ soval = 1;
+ if(setsockopt(fd, SOL_IP, IP_MULTICAST_LOOP, &soval, sizeof(soval)))
+ return(-1);
return(fd);
}
static void test(int fd)
{
char buf[65536];
- int ret;
+ int i, ret;
struct sockaddr_storage nm;
socklen_t nmlen;
exit(1);
}
printf("%s %i:\n", formataddress((struct sockaddr *)&nm, nmlen), ret);
+ for(i = 0; i < ret; i++) {
+ printf("%02x ", (unsigned char)buf[i]);
+ if(i % 20 == 0)
+ putchar(10);
+ }
}
}