<div dir="ltr"><br><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
Hi Michael,<br>
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?<br>
Regards,<br>
Jonathan<br>
<br>
     On Friday, 21 November 2014, 15:08, Jonathan Fitt <<a href="mailto:jonfitt@yahoo.com">jonfitt@yahoo.com</a>> wrote:<br>
<br>
<br>
 Thanks! I'll give that a go and let you know how it goes. <br>
Jonathan<br>
On Nov 21, 2014, at 1:25 PM, Michael Jones <<a href="mailto:avahi@jonesmz.com">avahi@jonesmz.com</a>> wrote:<br>
<br>
<br>
<br>
<br>
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.<br>
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.<br>
Thanks!Jonathan<br>
<br>
<br>
<br>
Write a small program that uses the Avahi API. A very high level wrapper for the Avahi API is: <a href="https://github.com/johanneshilden/qtzeroconf" target="_blank">https://github.com/johanneshilden/qtzeroconf</a><br>
<br>
Using that, you can detect your phone joining your home network in under 10 lines of code.<br>
Create the service browser object<br>
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.<br>
<br>
>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.<br>
<br>
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.<br>
<br>
--Michael Jone</blockquote><div><br><br></div><div>Hi Jonathan <br><br><br></div><div>That's a good question. I actually don't know. The qtzeroconf library isn't actually mine, originally. I made a lot of modifications to it (Here: <a href="https://github.com/jonesmz/qtzeroconf">https://github.com/jonesmz/qtzeroconf</a>) that take advantage of Qt5 and C++11, but those changes aren't compatible with older versions of Qt, so I didn't want to recommend it to you.<br><br>If you feel like poking around at the Avahi C API and can demonstrate how to get mDNS host announcements out of the Avahi C api, I'd be willing to add support for that to my version of the qtzeroconf library (though, it'll still not be compatible with Qt4 or older versions of C++, so you might end up needing to backport the changes to the original authors github project.)<br><br></div><div>If you want to work just with what the current qtzeroconf library can do, you can just make your phone advertise an avahi service. Perhaps give the protocol name something like "_phone._tcp" or something. <br><br></div><div>Another thing to keep in mind, I don't know whether Avahi will automatically detect your phone on the local network unless your phone's operating system automatically sends that announcement. As far as I know, Android doesn't do that. I don't know about the other phone OS's.<br><br></div><div>Best of luck, and let me know if you want to investigate the host announcement support in qtzeroconf.<br><br></div><div>--Michael Jones<br></div></div></div></div>