From 8aa70869402f71328d1a5f92fa36aa9579dc333b Mon Sep 17 00:00:00 2001 From: Albert S Date: Mon, 24 Jul 2017 15:51:56 +0200 Subject: [PATCH] core: connectToIrc: Prevent DNS leaks on connection when using proxy 96fe7e713 introduced a call to QHostInfo::fromName() in order to avoid problems related to the caching of DNS queries. It however is also called when the user has specified that a proxy should be used. This behavior therefore introduces a DNS leak. This commit ensures that QHostInfo::fromName() is not called when a proxy has been specified. --- src/core/corenetwork.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/core/corenetwork.cpp b/src/core/corenetwork.cpp index 3ad9d7cb..f77b29aa 100644 --- a/src/core/corenetwork.cpp +++ b/src/core/corenetwork.cpp @@ -241,8 +241,9 @@ void CoreNetwork::connectToIrc(bool reconnecting) // Qt caches DNS entries for a minute, resulting in round-robin (e.g. for chat.freenode.net) not working if several users // connect at a similar time. QHostInfo::fromName(), however, always performs a fresh lookup, overwriting the cache entry. - QHostInfo::fromName(server.host); - + if (! server.useProxy) { + QHostInfo::fromName(server.host); + } #ifdef HAVE_SSL if (server.useSsl) { CoreIdentity *identity = identityPtr(); -- 2.20.1