[avahi] Receive mDNS annoucnements

Jon Fitt jonfitt at yahoo.com
Tue Nov 25 11:17:45 PST 2014

Hi Michael,
I'm looking at your ZConfBrowserWidget and I see that it needs a service type. Technically I believe from what I've been reading the mDNS host announcements are different to an DNS-SD service, although they are both announced in a similar way.Is there a "service type" that catches the mDNS hostname announcements?

     On Friday, 21 November 2014, 15:08, Jonathan Fitt <jonfitt at yahoo.com> wrote:

 Thanks! I'll give that a go and let you know how it goes. 
On Nov 21, 2014, at 1:25 PM, Michael Jones <avahi at jonesmz.com> wrote:

Hello,I am looking for a way for a Linux machine to tell when I return home. My idea is that my iPhone will always do an mDNS announcement when it joins my home wifi. So I'm looking for a way to watch for mDNS announcements and perform and action if the right one is seen. Obviously the avahi-daemon is watching these all the time and updating its cache, so I was thinking that there might be a good place to start. However the only command line way I can see to get to the avahi-daemon cache is to send a SIGUSR1 to get it to dump to /var/log/syslog. Then I can look at the timestamp to determine the last time it registered and compare with now. That seems quite ugly though, and I don't like the idea of continually dumping to syslog.
So is there a way to make it more event driven with the avahi-daemon? I think from looking at the D-Bus API that might be the way to go?If it is the right approach, I would appreciate it if someone knew of a related chunk of source that I could use as a starting point.

Write a small program that uses the Avahi API. A very high level wrapper for the Avahi API is: https://github.com/johanneshilden/qtzeroconf

Using that, you can detect your phone joining your home network in under 10 lines of code.
Create the service browser object
Connect that new object to a qt slot that'll respond to the new service joining your network, Tell the service browser object which services to listen for.

>From there, you can do whatever you want with the information. Perhaps you would want to send some kind of DBus signal to let other programs know. 

I'm afraid I haven't investigated the DBus API, so I'm not certain I can give you any advice in that direction, but I have written apps using the high level Qt API that I linked above, and I've never had any trouble with it.

--Michael Jones 

avahi mailing list
avahi at lists.freedesktop.org

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/avahi/attachments/20141125/76824f34/attachment.html>

More information about the avahi mailing list