Force socket() level UDP sockets to use IGMP v2 and not adaptive to v3

I'm working with an app that was developed with the CocoaAsyncSocket library, which uses <sys/socket.h> style socket programming. We have a customer where certain features are not working if iOS "adapts" to v3 IGMP but seems to work if v2 IGMP is used.

I can't say I understand all the low level aspects and am trying to inform myself. I've been searching online to find out about socket and IGMP but don't see anything coming up.

Is there a way to force iOS to use IGMP v2 for broadcast? Our company also makes a hardware communicator and their code forces v2 and we've been asked to see if we can do the same.

Thanks for any leads on where to go to inform myself. more or code snippets on how to do this.

Answered by Engineer in 816866022

Hi,

There isn't any way to force IGMP v2 because IGMP v2 is automatically selected when an IGMP v2 router is present on the network.

Accepted Answer

Hi,

There isn't any way to force IGMP v2 because IGMP v2 is automatically selected when an IGMP v2 router is present on the network.

Thank you. We were asked because our HW devices have code to limit it to IGMP v2. Our customer's network has an issue due to a bug on their CISCO router for which there is no fix yet.

Force socket() level UDP sockets to use IGMP v2 and not adaptive to v3
 
 
Q