more iOS reachabilitty tuning

pull/961/head
Michael Zanetti 2023-01-27 14:31:50 +01:00
parent 08a8cfca63
commit 4a9859579a
2 changed files with 5 additions and 3 deletions

View File

@ -21,11 +21,12 @@ void NetworkReachabilityMonitor::ReachabilityCallback(SCNetworkReachabilityRef t
if (target == thiz->m_internetReachabilityRef) {
// If the internet reachability changes, enable the mobile data bearer if we're reaching the internet through mobile data
newTypes.setFlag(NymeaConnection::BearerTypeMobileData, (flags & kSCNetworkReachabilityFlagsReachable) && (flags & kSCNetworkReachabilityFlagsIsWWAN));
newTypes.setFlag(NymeaConnection::BearerTypeMobileData, (flags & kSCNetworkReachabilityFlagsReachable));
newTypes.setFlag(NymeaConnection::BearerTypeWiFi, (flags & kSCNetworkReachabilityFlagsReachable) && !(flags & kSCNetworkReachabilityFlagsIsWWAN));
qCDebug(dcNymeaConnection()) << "Internet reachability changed";
} else if (target == thiz->m_lanReachabilityRef) {
// If the lan reachability changes, we'll enable the wifi bearer, regardless of how
newTypes.setFlag(NymeaConnection::BearerTypeWiFi, flags & kSCNetworkReachabilityFlagsReachable);
newTypes.setFlag(NymeaConnection::BearerTypeWiFi, (flags & kSCNetworkReachabilityFlagsReachable));
qCDebug(dcNymeaConnection()) << "LAN reachability changed";
}

View File

@ -57,7 +57,8 @@ NymeaConnection::NymeaConnection(QObject *parent) : QObject(parent)
#ifdef Q_OS_IOS
connect(m_networkReachabilityMonitor, &NetworkReachabilityMonitor::availableBearerTypesChanged, this, [this](){
if (m_currentTransport) {
if (m_currentTransport) {
qCInfo(dcNymeaConnection()) << "Available bearer types changed:" << m_networkReachabilityMonitor->availableBearerTypes() << "currently used:" << m_usedBearerType;
if (!m_networkReachabilityMonitor->availableBearerTypes().testFlag(m_usedBearerType)) {
qCInfo(dcNymeaConnection()) << "Used bearer type" << m_usedBearerType << "isn't available any more. Reconnecting.";
m_currentTransport->disconnect();