I am trying to listen to multicast DNS packets but when I try to configure the IP interface it fails, what am I missing?
I do this (multicast with promiscuous) snprint(addr, sizeof(addr), "%s/udp!*!*", Netdir); if((cfd = announce(addr, dir)) < 0) sysfatal("%s cannot announce, %r\n", addr); if(fprint(cfd, "addmulti 224.0.0.251") < 0) sysfatal("add multicast addr 224.0.0.251 failed, %r"); and it dies with 'addmulti for a non multicast address' which is caused by this failing: /sys/src/9/ip/ipifc.c int ipismulticast(uchar *ip) { if(isv4(ip)){ if(ip[IPv4off] >= 0xe0 && ip[IPv4off] < 0xf0) return V4; } else if(ip[0] == 0xff) return V6; return 0; } But 0xe0 is 224 so it should not fail. I'am very confused. -Steve