summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemko Tronçon <git@el-tramo.be>2009-07-24 06:30:33 (GMT)
committerRemko Tronçon <git@el-tramo.be>2009-07-24 07:16:35 (GMT)
commit42e410208ca9aa8af5f27c85a6b33af488a0b6cc (patch)
tree42c7793effd1225ebe6617c7405cf64635530a53 /Swiften/LinkLocal/BonjourBrowseQuery.h
parent714e831bb9ea2b14cba3c2696c12e2e13b1bb9d7 (diff)
downloadswift-42e410208ca9aa8af5f27c85a6b33af488a0b6cc.zip
swift-42e410208ca9aa8af5f27c85a6b33af488a0b6cc.tar.bz2
More DNSSD framework.
Diffstat (limited to 'Swiften/LinkLocal/BonjourBrowseQuery.h')
-rw-r--r--Swiften/LinkLocal/BonjourBrowseQuery.h25
1 files changed, 9 insertions, 16 deletions
diff --git a/Swiften/LinkLocal/BonjourBrowseQuery.h b/Swiften/LinkLocal/BonjourBrowseQuery.h
index 5b14d30..6a50a61 100644
--- a/Swiften/LinkLocal/BonjourBrowseQuery.h
+++ b/Swiften/LinkLocal/BonjourBrowseQuery.h
@@ -11,8 +11,9 @@ namespace Swift {
BonjourBrowseQuery(boost::shared_ptr<BonjourQuerier> q) : BonjourQuery(q) {
DNSServiceErrorType result = DNSServiceBrowse(
&sdRef, 0, 0, "_presence._tcp", 0,
- &BonjourBrowseQuery::handleServiceDiscoveredGlobal , this);
+ &BonjourBrowseQuery::handleServiceDiscovered, this);
if (result != kDNSServiceErr_NoError) {
+ std::cout << "Error" << std::endl;
// TODO
}
}
@@ -27,29 +28,21 @@ namespace Swift {
}
private:
- static void handleServiceDiscoveredGlobal(DNSServiceRef, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType errorCode, const char *serviceName, const char *regtype, const char *replyDomain, void *context) {
- static_cast<BonjourBrowseQuery*>(context)->handleServiceDiscovered(flags, interfaceIndex, errorCode, serviceName, regtype, replyDomain);
- }
-
- void handleServiceDiscovered(
- DNSServiceFlags flags,
- uint32_t interfaceIndex,
- DNSServiceErrorType errorCode,
- const char *serviceName,
- const char *type,
- const char *domain) {
+ static void handleServiceDiscovered(DNSServiceRef, DNSServiceFlags flags, uint32_t interfaceIndex, DNSServiceErrorType errorCode, const char *name, const char *type, const char *domain, void *context) {
if (errorCode != kDNSServiceErr_NoError) {
return;
}
else {
- LinkLocalServiceID service(serviceName, type, domain, interfaceIndex);
+ BonjourBrowseQuery* query = static_cast<BonjourBrowseQuery*>(context);
+ LinkLocalServiceID service(name, type, domain, interfaceIndex);
+ std::cout << "Service discovered: " << name << std::endl;
if (flags & kDNSServiceFlagsAdd) {
- onServiceAdded(service);
+ query->onServiceAdded(service);
}
else {
- onServiceRemoved(service);
+ query->onServiceRemoved(service);
}
}
- }
+ }
};
}