You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The sockets on MacOS bound by Ciao not able to receive incoming multicast packets despite having addMembership called. Despite this, these sockets are still able to receive the multicast packets sent on the same interface with IP_MULTICAST_LOOP enabled.
This behavior is not exhibited with Linux hosts.
The MacOS system dns-sd command is able to find registered services from Ciao. This means that the only explanation that Avahi stack on a separate Linux host not finding the Ciao registered service is that the the socket.addMembership is silently failing, or that are passing it incorrect parameters on MacOS specifically.
Expected Behavior
Incoming multicast packets should be correctly received by the the multicast sockets bound by MDNS.
Steps To Reproduce
Run the following example code on a MacOS Host
importciao,{Protocol}from'./src';constresponder=ciao.getResponder();// create a service defining a web server running on port 3000responder.createService({name: 'My Web Server',type: 'http',port: 3000,// optional, can also be set via updatePort() before advertisingtxt: {// optionalkey: "value",}})// it must not be advertised, so that a query packet sent by Avahi on another host must be sent to trigger a response packet by Ciao
Run avahi-browse -d local _http._tcp --resolve -t on a separate Linux host.
Expect enp0s31f6 IPv4 My Web Server _http._tcp local to be an entry.
Logs
No logs emitted from Ciao or Avahi.
Configuration
No Configuration.
Environment
MacOS Host: Macmini9,1
OS: MacOS 13.1 (Build 22C65)
Software: Ciao v1.1.7
Node: v20.5.1
npm: 9.8.0
Process Supervisor
not applicable
Additional Context
I was developing my own JS MDNS responder when I came across this behavior. I've written an issue about it here:
Can you try if it's fixed when you start Wireshark on that interface in promiscuous mode?
I have similar problems (with other multicast traffic) with an AX88178A dongle...
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
If it's an AX88179A based dongle (you can find this info in the System Info, under the Apple logo), ping me.
I contacted ASIX for this, and they have an updated FW for the dongles, which fixes my multicast issue on macOS!
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.
Analysis
The sockets on MacOS bound by Ciao not able to receive incoming multicast packets despite having addMembership called. Despite this, these sockets are still able to receive the multicast packets sent on the same interface with IP_MULTICAST_LOOP enabled.
This behavior is not exhibited with Linux hosts.
The MacOS system dns-sd command is able to find registered services from Ciao. This means that the only explanation that Avahi stack on a separate Linux host not finding the Ciao registered service is that the the socket.addMembership is silently failing, or that are passing it incorrect parameters on MacOS specifically.
Expected Behavior
Incoming multicast packets should be correctly received by the the multicast sockets bound by MDNS.
Steps To Reproduce
avahi-browse -d local _http._tcp --resolve -t
on a separate Linux host.enp0s31f6 IPv4 My Web Server _http._tcp local
to be an entry.Logs
Configuration
No Configuration.
Environment
MacOS Host: Macmini9,1
Process Supervisor
not applicable
Additional Context
I was developing my own JS MDNS responder when I came across this behavior. I've written an issue about it here:
MatrixAI/js-mdns#29
The text was updated successfully, but these errors were encountered: