|
|
@ -35,6 +35,7 @@
|
|
|
|
|
|
|
|
|
|
|
|
namespace DNSSD
|
|
|
|
namespace DNSSD
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
#ifdef HAVE_DNSSD
|
|
|
|
#ifdef AVAHI_API_0_6
|
|
|
|
#ifdef AVAHI_API_0_6
|
|
|
|
|
|
|
|
|
|
|
|
void services_callback(AvahiServiceBrowser*, AvahiIfIndex, AvahiProtocol, AvahiBrowserEvent event, const char* name,
|
|
|
|
void services_callback(AvahiServiceBrowser*, AvahiIfIndex, AvahiProtocol, AvahiBrowserEvent event, const char* name,
|
|
|
@ -49,6 +50,7 @@ void types_callback(AvahiServiceTypeBrowser*, AvahiIfIndex, AvahiProtocol, Avahi
|
|
|
|
void domains_callback(AvahiDomainBrowser*, AvahiIfIndex, AvahiProtocol, AvahiBrowserEvent event, const char* replyDomain,
|
|
|
|
void domains_callback(AvahiDomainBrowser*, AvahiIfIndex, AvahiProtocol, AvahiBrowserEvent event, const char* replyDomain,
|
|
|
|
void* context);
|
|
|
|
void* context);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
enum BrowserType { Types, Services };
|
|
|
|
enum BrowserType { Types, Services };
|
|
|
|
|
|
|
|
|
|
|
@ -106,21 +108,25 @@ void Query::startQuery()
|
|
|
|
d->m_finished = false;
|
|
|
|
d->m_finished = false;
|
|
|
|
if (d->m_type=="_services._dns-sd._udp") {
|
|
|
|
if (d->m_type=="_services._dns-sd._udp") {
|
|
|
|
d->m_browserType = Types;
|
|
|
|
d->m_browserType = Types;
|
|
|
|
|
|
|
|
#ifdef HAVE_DNSSD
|
|
|
|
#ifdef AVAHI_API_0_6
|
|
|
|
#ifdef AVAHI_API_0_6
|
|
|
|
d->m_browser = avahi_service_type_browser_new(Responder::self().client(), AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC,
|
|
|
|
d->m_browser = avahi_service_type_browser_new(Responder::self().client(), AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC,
|
|
|
|
domainToDNS(d->m_domain), (AvahiLookupFlags)0, types_callback, this);
|
|
|
|
domainToDNS(d->m_domain), (AvahiLookupFlags)0, types_callback, this);
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
d->m_browser = avahi_service_type_browser_new(Responder::self().client(), AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC,
|
|
|
|
d->m_browser = avahi_service_type_browser_new(Responder::self().client(), AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC,
|
|
|
|
d->m_domain.utf8(), types_callback, this);
|
|
|
|
d->m_domain.utf8(), types_callback, this);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
d->m_browserType = Services;
|
|
|
|
d->m_browserType = Services;
|
|
|
|
|
|
|
|
#ifdef HAVE_DNSSD
|
|
|
|
#ifdef AVAHI_API_0_6
|
|
|
|
#ifdef AVAHI_API_0_6
|
|
|
|
d->m_browser = avahi_service_browser_new(Responder::self().client(), AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC,
|
|
|
|
d->m_browser = avahi_service_browser_new(Responder::self().client(), AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC,
|
|
|
|
d->m_type.ascii(),domainToDNS(d->m_domain), (AvahiLookupFlags)0, services_callback,this);
|
|
|
|
d->m_type.ascii(),domainToDNS(d->m_domain), (AvahiLookupFlags)0, services_callback,this);
|
|
|
|
#else
|
|
|
|
#else
|
|
|
|
d->m_browser = avahi_service_browser_new(Responder::self().client(), AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC,
|
|
|
|
d->m_browser = avahi_service_browser_new(Responder::self().client(), AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC,
|
|
|
|
d->m_type.ascii(),d->m_domain.utf8(),services_callback,this);
|
|
|
|
d->m_type.ascii(),d->m_domain.utf8(),services_callback,this);
|
|
|
|
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if (d->m_browser) {
|
|
|
|
if (d->m_browser) {
|
|
|
@ -152,6 +158,7 @@ void Query::timeout()
|
|
|
|
emit finished();
|
|
|
|
emit finished();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#ifdef HAVE_DNSSD
|
|
|
|
#ifdef AVAHI_API_0_6
|
|
|
|
#ifdef AVAHI_API_0_6
|
|
|
|
void services_callback (AvahiServiceBrowser*, AvahiIfIndex, AvahiProtocol, AvahiBrowserEvent event,
|
|
|
|
void services_callback (AvahiServiceBrowser*, AvahiIfIndex, AvahiProtocol, AvahiBrowserEvent event,
|
|
|
|
const char* serviceName, const char* regtype, const char* replyDomain, AvahiLookupResultFlags, void* context)
|
|
|
|
const char* serviceName, const char* regtype, const char* replyDomain, AvahiLookupResultFlags, void* context)
|
|
|
@ -181,6 +188,7 @@ void types_callback(AvahiServiceTypeBrowser*, AvahiIfIndex, AvahiProtocol, Avahi
|
|
|
|
DNSToDomain(replyDomain));
|
|
|
|
DNSToDomain(replyDomain));
|
|
|
|
QApplication::postEvent(obj, arev);
|
|
|
|
QApplication::postEvent(obj, arev);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#include "query.moc"
|
|
|
|
#include "query.moc"
|
|
|
|