net: Do not keep reconnecting on "useless" changes of the current session
commitee4e9e6fb1bb7a8b28ebe72bd283da3e104e6213
authorJan Kundrát <jkt@kde.org>
Thu, 23 Apr 2015 23:38:33 +0000 (24 01:38 +0200)
committerJan Kundrát <jkt@kde.org>
Tue, 12 May 2015 15:06:11 +0000 (12 17:06 +0200)
tree5d3b5d1b927fad7c69db5b6f761dbdb34a87f36e
parent0f73343e8bbd8f7cbd076ebbbb1dbdd525f14855
net: Do not keep reconnecting on "useless" changes of the current session

Warning: this is apparently black magic. One day someone should go
through Qt's code, check why the hell they are emitting these signals,
and make sure that they only hit us when the network configuration has
actually changed.

In the meanwhile, this patch makes sure that we only initiate switching
to another session in case our current one changes and is not active
anymore (old behavior prior to this patch) *and* if the system actually
has some other default session.

It turns out that I'm hitting this because I have my phone plugged in
via USB for charging, and this creates a cdc_ncm interface. That
interface (two of them, actually) does not have a default route (just
some local auto-assigned crap), but Qt is nonetheless returning it from
a QNetworkConfigurationManager::defaultConfiguration(). This sounds like
a Qt bug which should be patched at that level; applications should not
be required to handle this on their own. But if this educated guess
happens to be correct, then it seems that this patch is actually a good
thing...

Change-Id: I06f14837b2411c5b2ea68fc22b1a9667d70ecb3d
src/Imap/Model/SystemNetworkWatcher.cpp