<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">
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></blockquote><div><br><div class="gmail_extra">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></div><div class="gmail_extra">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></div><div class="gmail_extra">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></div><div class="gmail_extra">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></div>--Michael Jones <br></div></div><br></div></div>