mDNS candidates resolution
Hi there,
this is not really an issue, as it can be addressed in the application, but I thought I'd mention it anyway, since libnice was mentioned in a discussion on discuss-webrtc as unable to address the change, and I explained how to do it instead.
To summarize, not sure you're aware that, after Safari, Chrome is now adding support for mDNS based candidates too, as defined in draft-mdns-ice-candidates-00, in an attempt to further increase privacy. Basically, it means that instead of a numeric IP, a host candidate in the SDP may contain a .local
address instead, that needs to be resolved locally.
Trying to pass the address as it is to libnice fails, so I fixed this in Janus by doing a resolution of the .local
address before passing the address to nice_address_set_from_string
. Anyway, looking at the implementation in libnice, it looks like you're doing a getaddrinfo
too, but with a constraint:
/* AI_NUMERICHOST prevents getaddrinfo() from doing DNS resolution. */
hints.ai_family = AF_UNSPEC;
hints.ai_flags = AI_NUMERICHOST;
Since AI_NUMERICHOST
is involved (which makes sense), resolving the .local
fails. I'm wondering if it might make sense to add an exception for mDNS addresses, though, considering they'll become a standard soon: that is, still not do a DNS resolution for domain names, but do it if it's a local address like this.
Looking forward to your thoughts on this, and hope this helps!