summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard Maudsley <richard.maudsley@isode.com>2014-07-17 09:46:50 (GMT)
committerSwift Review <review@swift.im>2014-08-10 11:08:27 (GMT)
commit8ec22a9c5591584fd1725ed028d714c51b7509d3 (patch)
tree3687e7023696c9e790a24fd54b7d04f14ac58ab2 /Swiften/Network/PlatformDomainNameServiceQuery.cpp
parent5e9e715e49a5ddb6ce9c76ec61e7ecfd6eacdb58 (diff)
downloadswift-8ec22a9c5591584fd1725ed028d714c51b7509d3.zip
swift-8ec22a9c5591584fd1725ed028d714c51b7509d3.tar.bz2
Fix invalid characters being allowed in JID domains
Test-Information: Prepare valid and invalid JIDs and make sure that isValid() is reported correctly. Added unit tests. Change-Id: Ic4d86f8b6ea9defc517ada2f8e3cc54979237cf4
Diffstat (limited to 'Swiften/Network/PlatformDomainNameServiceQuery.cpp')
-rw-r--r--Swiften/Network/PlatformDomainNameServiceQuery.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/Swiften/Network/PlatformDomainNameServiceQuery.cpp b/Swiften/Network/PlatformDomainNameServiceQuery.cpp
index 5788d2f..58cf8d2 100644
--- a/Swiften/Network/PlatformDomainNameServiceQuery.cpp
+++ b/Swiften/Network/PlatformDomainNameServiceQuery.cpp
@@ -38,7 +38,11 @@ using namespace Swift;
namespace Swift {
-PlatformDomainNameServiceQuery::PlatformDomainNameServiceQuery(const std::string& service, EventLoop* eventLoop, PlatformDomainNameResolver* resolver) : PlatformDomainNameQuery(resolver), eventLoop(eventLoop), service(service) {
+PlatformDomainNameServiceQuery::PlatformDomainNameServiceQuery(const boost::optional<std::string>& serviceName, EventLoop* eventLoop, PlatformDomainNameResolver* resolver) : PlatformDomainNameQuery(resolver), eventLoop(eventLoop), serviceValid(false) {
+ if (!!serviceName) {
+ service = *serviceName;
+ serviceValid = true;
+ }
}
void PlatformDomainNameServiceQuery::run() {
@@ -46,6 +50,11 @@ void PlatformDomainNameServiceQuery::run() {
}
void PlatformDomainNameServiceQuery::runBlocking() {
+ if (!serviceValid) {
+ emitError();
+ return;
+ }
+
SWIFT_LOG(debug) << "Querying " << service << std::endl;
std::vector<DomainNameServiceQuery::Result> records;