core: connectToIrc: Prevent DNS leaks on connection when using proxy
authorAlbert S <mail@quitesimple.org>
Mon, 24 Jul 2017 13:51:56 +0000 (15:51 +0200)
committerManuel Nickschas <sputnick@quassel-irc.org>
Sun, 4 Feb 2018 22:26:57 +0000 (23:26 +0100)
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

index 3ad9d7c..f77b29a 100644 (file)
@@ -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();