diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-07-04 14:43:57 +0200 |
---|---|---|
committer | The Qt Project <gerrit-noreply@qt-project.org> | 2014-07-04 18:46:06 +0200 |
commit | 14a80bd4df83e960de458403deaf895a3d2c8812 (patch) | |
tree | 1bf8a79b746378b14f64dbb32bb3bf5119d22f0c /src/network | |
parent | 3acd4b546ded7523f65d60cee6f3809113a91a16 (diff) | |
parent | 39a290af6cea538dbbdb207d03d2af3602015c95 (diff) |
Merge "Merge remote-tracking branch 'origin/5.3' into dev" into refs/staging/dev
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/kernel/qdnslookup_winrt.cpp | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/network/kernel/qdnslookup_winrt.cpp b/src/network/kernel/qdnslookup_winrt.cpp index 3a84279af6..52a8c3a530 100644 --- a/src/network/kernel/qdnslookup_winrt.cpp +++ b/src/network/kernel/qdnslookup_winrt.cpp @@ -116,6 +116,8 @@ void QDnsLookupRunnable::query(const int requestType, const QByteArray &requestN unsigned int size; endpointPairs->get_Size(&size); + // endpoint pairs might contain duplicates so we temporarily store addresses in a QSet + QSet<QHostAddress> addresses; for (unsigned int i = 0; i < size; ++i) { ComPtr<IEndpointPair> endpointpair; endpointPairs->GetAt(i, &endpointpair); @@ -133,9 +135,12 @@ void QDnsLookupRunnable::query(const int requestType, const QByteArray &requestN remoteHost->get_CanonicalName(name.GetAddressOf()); UINT32 length; PCWSTR rawString = name.GetRawBuffer(&length); + addresses.insert(QHostAddress(QString::fromWCharArray(rawString, length))); + } + foreach (const QHostAddress &address, addresses) { QDnsHostAddressRecord record; record.d->name = aceHostname; - record.d->value = QHostAddress(QString::fromWCharArray(rawString, length)); + record.d->value = address; reply->hostAddressRecords.append(record); } } |