Unfortunately, I don't think this is possible to do currently on OpenBSD. The list of multicast addresses is stored in each interface's struct ifnet's if_maddrlist field, but the only references to this are for adding/removing multicast addresses. There are no system calls for retrieving the active list of multicast addresses.
I suspect the most appropriate solution would be to mimic SIOCGIFCONF, the ioctl used for retrieving the list of unicast addresses on an interface. It probably wouldn't be difficult to implement if someone has the time/motivation to look into it.
or, reconstructing per-interface multicast address lists by using routing entries, as a compromise until they provide system calls. once https://go-review.googlesource.com/#/c/4330/ lands, perhaps it might not be so tough.
The text was updated successfully, but these errors were encountered: