Boost logo

Boost Users :

From: Matt Gruenke (mgruenke_at_[hidden])
Date: 2008-08-04 02:40:49


I know a bit about mDNS, and I think DNS-SD is just a way to implement
service discovery on top of DNS.

The lookup part of mDNS should be implemented at the system level. On a
posix system w/ mDNS support, the lookup is normally handled
transparently via gethostbyname() and therefore requires no special
support from ASIO. Two ways I've seen this done are via custom support
in the C library and via a plug-in (specifically, a shared library
that's specified via /etc/nsswitch.conf). For scalability reasons, it
is ideal if the lookup consults a daemon process or service running on
the local machine that can both listen for announcements and maintain a
cache from which to answer duplicate queries.

I think the Windows install of Bonjour has a way of extending the normal
DNS lookup mechanism to support mDNS, as well. This is necessary for
use of mDNS from Windows XP, as it lacks built-in support. I can't say
the same for Windows Vista, however.

I'm not familiar with the other side (i.e. announcements), but I wonder
whether typical OS security models permit this to be done at the
application level (i.e. if the user is not running as root or local
Administrator). If that's the case, then your app would have to
communicate with a service which supports mDNS announcements for that
platform - and I'm pretty sure there's no standard way to do that.

You might find more interest, on the asio-users mailing list:

    http://sourceforge.net/mail/?group_id=122478

Matt


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net