summaryrefslogtreecommitdiffstats
path: root/dnssd/servicebrowser.cpp
diff options
context:
space:
mode:
authortpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-12-11 03:46:01 +0000
committertpearson <tpearson@283d02a7-25f6-0310-bc7c-ecb5cbfe19da>2009-12-11 03:46:01 +0000
commit865f314dd5ed55508f45a32973b709b79a541e36 (patch)
treedc1a3a884bb2fc10a89a3c46313897d22c5771eb /dnssd/servicebrowser.cpp
parentce4a32fe52ef09d8f5ff1dd22c001110902b60a2 (diff)
downloadtdelibs-865f314dd5ed55508f45a32973b709b79a541e36.tar.gz
tdelibs-865f314dd5ed55508f45a32973b709b79a541e36.zip
kdelibs update to Trinity v3.5.11
git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1061230 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
Diffstat (limited to 'dnssd/servicebrowser.cpp')
-rw-r--r--dnssd/servicebrowser.cpp25
1 files changed, 7 insertions, 18 deletions
diff --git a/dnssd/servicebrowser.cpp b/dnssd/servicebrowser.cpp
index 017dc8102..542580c1b 100644
--- a/dnssd/servicebrowser.cpp
+++ b/dnssd/servicebrowser.cpp
@@ -23,14 +23,11 @@
#include <qstringlist.h>
#include <qfile.h>
#include "domainbrowser.h"
+#include "responder.h"
#include "query.h"
#include "servicebrowser.h"
+#include <avahi-client/client.h>
#include <config.h>
-#ifdef HAVE_DNSSD
-#include <dns_sd.h>
-#endif
-
-#define MDNSD_PID "/var/run/mdnsd.pid"
namespace DNSSD
{
@@ -85,20 +82,12 @@ ServiceBrowser::ServiceBrowser(const QString& type,const QString& domain,int fla
const ServiceBrowser::State ServiceBrowser::isAvailable()
{
-#ifdef HAVE_DNSSD
- QFile f(MDNSD_PID);
- if (!f.open(IO_ReadOnly)) return Stopped; // no pidfile
- QString line;
- if (f.readLine(line,16)<1) return Stopped;
- unsigned int pid = line.toUInt();
- if (pid==0) return Stopped; // not a pid
- return (kill(pid,0)==0 || errno==EPERM) ? Working : Stopped;
- // signal 0 only checks if process is running, mdnsd is probably owned by 'nobody' so we will
- // get EPERM, if mdnsd is not running error will be ESRCH
-
+ AvahiClientState s = Responder::self().state();
+#ifdef AVAHI_API_0_6
+ return (s==AVAHI_CLIENT_FAILURE) ? Stopped : Working;
#else
- return Unsupported;
-#endif
+ return (s==AVAHI_CLIENT_S_INVALID || s==AVAHI_CLIENT_DISCONNECTED) ? Stopped : Working;
+#endif
}
ServiceBrowser::~ ServiceBrowser()
{