Domanda

I've got c++ application running on busybox (kernel 3.0.35 ARM) which listens for multicast packets. Everything seemed working fine until I discovered that if I start the app up with the network cable unplugged and then plug it in later it won't received the multicast packets. I can't figure out why. There is no error, all setting up operations (bind, setsockopt, ...) finish successfully, ip maddr shows correct information as well. Only select() won't report any incoming data. Is there something kernel does differently if link is not up?

Interestingly same app also sends multicast packets on different addresses and this doesn't seem to be affected by the link status, it's happily transmitting once I plug the cable in.

Any ideas?

Thanks, Tom

È stato utile?

Soluzione

Presumably you issue JOIN when you startup. If the cable isn't plugged in, the IGMP JOIN request can't go anywhere, so the router doesn't know to send multicasts to you.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top