mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-04-26 14:23:09 +00:00
Force to set ipv6 method to auto
This commit is contained in:
parent
17e92e72fc
commit
24d5a2f223
4 changed files with 18 additions and 1 deletions
|
|
@ -370,6 +370,9 @@ QCoro::Task<void> Modem::addProfile(QString name, QString apn, QString username,
|
|||
|
||||
gsmSetting->setInitialized(true);
|
||||
|
||||
NetworkManager::Ipv6Setting::Ptr ipv6Setting = settings->setting(NetworkManager::Setting::Ipv6).dynamicCast<NetworkManager::Ipv6Setting>();
|
||||
ipv6Setting->setMethod(NetworkManager::Ipv6Setting::ConfigMethod::Automatic);
|
||||
|
||||
QDBusReply<QDBusObjectPath> reply = co_await NetworkManager::addAndActivateConnection(settings->toMap(), m_nmModem->uni(), "");
|
||||
if (!reply.isValid()) {
|
||||
qWarning() << QStringLiteral("Error adding connection:") << reply.error().message();
|
||||
|
|
@ -420,6 +423,9 @@ QCoro::Task<void> Modem::updateProfile(QString connectionUni, QString name, QStr
|
|||
|
||||
gsmSetting->setInitialized(true);
|
||||
|
||||
NetworkManager::Ipv6Setting::Ptr ipv6Setting = conSettings->setting(NetworkManager::Setting::Ipv6).dynamicCast<NetworkManager::Ipv6Setting>();
|
||||
ipv6Setting->setMethod(NetworkManager::Ipv6Setting::ConfigMethod::Automatic);
|
||||
|
||||
QDBusReply<void> reply = con->update(conSettings->toMap());
|
||||
if (!reply.isValid()) {
|
||||
qWarning() << QStringLiteral("Error updating connection settings for") << connectionUni << QStringLiteral(":") << reply.error().message()
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
#include <NetworkManagerQt/CdmaSetting>
|
||||
#include <NetworkManagerQt/ConnectionSettings>
|
||||
#include <NetworkManagerQt/GsmSetting>
|
||||
#include <NetworkManagerQt/Ipv6Setting>
|
||||
#include <NetworkManagerQt/Manager>
|
||||
#include <NetworkManagerQt/ModemDevice>
|
||||
#include <NetworkManagerQt/Settings>
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@
|
|||
#include <NetworkManagerQt/CdmaSetting>
|
||||
#include <NetworkManagerQt/ConnectionSettings>
|
||||
#include <NetworkManagerQt/GsmSetting>
|
||||
#include <NetworkManagerQt/Ipv6Setting>
|
||||
#include <NetworkManagerQt/Manager>
|
||||
#include <NetworkManagerQt/Settings>
|
||||
|
||||
|
|
@ -96,6 +97,14 @@ QCoro::Task<void> AutoDetectAPN::checkAndAddAutodetectedAPN()
|
|||
gsmSetting->setHomeOnly(false); // TODO respect modem roaming settings?
|
||||
gsmSetting->setInitialized(true);
|
||||
|
||||
if (
|
||||
detectedAPN.protocol == QStringLiteral("IPV6")
|
||||
|| detectedAPN.protocol == QStringLiteral("IPV4V6")
|
||||
) {
|
||||
NetworkManager::Ipv6Setting::Ptr ipv6Setting = settings->setting(NetworkManager::Setting::Ipv6).dynamicCast<NetworkManager::Ipv6Setting>();
|
||||
ipv6Setting->setMethod(NetworkManager::Ipv6Setting::ConfigMethod::Automatic);
|
||||
}
|
||||
|
||||
QDBusReply<QDBusObjectPath> reply = co_await NetworkManager::addAndActivateConnection(settings->toMap(), nmModem->uni(), "");
|
||||
if (!reply.isValid()) {
|
||||
qCWarning(LOGGING_CATEGORY) << "Error adding autodetected connection:" << reply.error().message();
|
||||
|
|
@ -152,7 +161,7 @@ std::optional<AutoDetectAPN::APNEntry> AutoDetectAPN::findAPN(const QString &ope
|
|||
QString mccmnc = element.attribute("mcc") + element.attribute("mnc");
|
||||
|
||||
if (mccmnc == operatorCode) {
|
||||
APNEntry entry{element.attribute("apn"), element.attribute("carrier")};
|
||||
APNEntry entry{element.attribute("apn"), element.attribute("carrier"), element.attribute("protocol", "IPV4V6")};
|
||||
candidates.push_back(entry);
|
||||
|
||||
// check if we have an MVNO match and prioritize that
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ public:
|
|||
struct APNEntry {
|
||||
QString apn;
|
||||
QString carrier;
|
||||
QString protocol;
|
||||
};
|
||||
|
||||
std::optional<APNEntry> findAPN(const QString &operatorCode, const QString &gid1, const QString &spn, const QString &imsi) const;
|
||||
|
|
|
|||
Loading…
Reference in a new issue