e=3D"font-family: = Helvetica; font-size: 12px; font-style: normal; font-variant-caps: = normal; font-weight: 400; letter-spacing: normal; orphans: auto; = text-align: start; text-indent: 0px; text-transform: none; white-space: = normal; widows: auto; word-spacing: 0px; -webkit-text-stroke-width: 0px; = text-decoration: none;"> Received packet, len=3D128
= etc

But yields no output if ran against above tun0 = interface (while tcpdump on same is fine). Does that ring a bell with = anyone ?

Dw


int main(int argc, char = *argv[])
{
   struct sockaddr_in = addr;
   struct ip_mreq mreq;

// skip = error trapping command line arguments

   char* ip = =3D argv[1]; 
   char* = group =3D argv[2]; 
   int = port =3D atoi(argv[3]); // 0 if error, which is an invalid = port

   memset(&addr, 0, = sizeof(addr));
   addr.sin_family =3D = AF_INET;
   addr.sin_addr.s_addr =3D = htonl(INADDR_ANY);
   addr.sin_port =3D = htons(port);

   mreq.imr_interface.s_addr =3D = inet_addr(ip); 
   mreq.im= r_multiaddr.s_addr =3D inet_addr(group);

// skip = error trapping on inet_addr

   int fd =3D = socket(AF_INET, SOCK_DGRAM, 0);
// skip error trapping = socket

   if (bind(fd, (struct sockaddr*) = &addr, sizeof(addr)) < 0) {
// skip error = trapping

   if (setsockopt(fd, IPPROTO_IP, = IP_ADD_MEMBERSHIP, (char*) &mreq, sizeof(mreq)) < 0 ){
// skip = error trapping argumetns

   while (1) {
= ..
       int nbytes =3D = recvfrom(fd,msgbuf,MSGBUFSIZE,0,(struct sockaddr *) = &addr,&addrlen);
       if = (nbytes < 0) = {
           per= ror("recvfrom");
         =   return = 1;
       }
= printf(?Received packet, len=3D%d\n", = nbytes);
    }


= --Apple-Mail=_34D971FD-B2DA-4F26-B33F-055D8F4B9B9F--