summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/LinkLocal/LinkLocalServiceBrowser.cpp')
-rw-r--r--Swiften/LinkLocal/LinkLocalServiceBrowser.cpp22
1 files changed, 17 insertions, 5 deletions
diff --git a/Swiften/LinkLocal/LinkLocalServiceBrowser.cpp b/Swiften/LinkLocal/LinkLocalServiceBrowser.cpp
index b3328cd..0498384 100644
--- a/Swiften/LinkLocal/LinkLocalServiceBrowser.cpp
+++ b/Swiften/LinkLocal/LinkLocalServiceBrowser.cpp
@@ -67,15 +67,27 @@ bool LinkLocalServiceBrowser::isRegistered() const {
67 67
68void LinkLocalServiceBrowser::registerService(const std::string& name, unsigned short port, const LinkLocalServiceInfo& info) { 68void LinkLocalServiceBrowser::registerService(const std::string& name, unsigned short port, const LinkLocalServiceInfo& info) {
69 assert(!registerQuery); 69 assert(!registerQuery);
70 registerQuery = querier->createRegisterQuery(name, port, info.toTXTRecord()); 70 if (auto txtRecord = info.toTXTRecord()) {
71 registerQuery->onRegisterFinished.connect( 71 registerQuery = querier->createRegisterQuery(name, port, *txtRecord);
72 boost::bind(&LinkLocalServiceBrowser::handleRegisterFinished, this, _1)); 72 registerQuery->onRegisterFinished.connect(
73 registerQuery->registerService(); 73 boost::bind(&LinkLocalServiceBrowser::handleRegisterFinished, this, _1));
74 registerQuery->registerService();
75 }
76 else {
77 haveError = true;
78 stop();
79 }
74} 80}
75 81
76void LinkLocalServiceBrowser::updateService(const LinkLocalServiceInfo& info) { 82void LinkLocalServiceBrowser::updateService(const LinkLocalServiceInfo& info) {
77 assert(registerQuery); 83 assert(registerQuery);
78 registerQuery->updateServiceInfo(info.toTXTRecord()); 84 if (auto txtRecord = info.toTXTRecord()) {
85 registerQuery->updateServiceInfo(*txtRecord);
86 }
87 else {
88 haveError = true;
89 stop();
90 }
79} 91}
80 92
81void LinkLocalServiceBrowser::unregisterService() { 93void LinkLocalServiceBrowser::unregisterService() {