Hi all,
My co-worker today noticed that on his Mac running a beta of Sequoia, the IPv6 multicast functionality of our application was no longer working. This same executable works fine under Sonoma and earlier versions of MacOS, and has worked fine for a number of years. Under Sequoia, however, calls to sendto()
a packet to an IPv6-link-local-multicast address (e.g. ff12::bead:cede:deed:feed
, preceeded by a call to setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_IF, ...)
to specify the appropriate network interface index) return -1
and set errno
to EHOSTUNREACH
aka "No route to host"
.
The interesting thing about it is, this problem only occurs if we launch our app by double-clicking on its icon; if we instead run the app from Terminal (e.g. by entering ./MyApp.app/Contents/MacOS/MyApp
), the multicast functionality works as expected. Our app is signed and notarized in all the usual expected ways.
My question is, is this "just" a networking regression in the Sequoia beta, or is there some new requirement in macOS/Sequoia for IPv6-link-local-multicast-using apps to have a multicast entitlement (a la iOS) or something?
Apple is bringing some networking protections over from iOS to macOS starting with Sequoia. Please see the following links:
- "What’s new in privacy" WWDC 2024 Video, https://developer.apple.com/videos/play/wwdc2024/10123?time=1097
- "Local Network Privacy FAQ" https://developer.apple.com/forums/thread/663858. In particular, the first few FAQs therein.
- "Support local network privacy in your app" https://developer.apple.com/videos/play/wwdc2020/10110/