diff options
Diffstat (limited to 'Swiften/LinkLocal/LinkLocalServiceBrowser.cpp')
| -rw-r--r-- | Swiften/LinkLocal/LinkLocalServiceBrowser.cpp | 22 |
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 | ||
| 68 | void LinkLocalServiceBrowser::registerService(const std::string& name, unsigned short port, const LinkLocalServiceInfo& info) { | 68 | void 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 | ||
| 76 | void LinkLocalServiceBrowser::updateService(const LinkLocalServiceInfo& info) { | 82 | void 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 | ||
| 81 | void LinkLocalServiceBrowser::unregisterService() { | 93 | void LinkLocalServiceBrowser::unregisterService() { |
Swift