mirror of
https://invent.kde.org/marcoa/shift-shell.git
synced 2026-07-31 08:44:45 +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);
|
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(), "");
|
QDBusReply<QDBusObjectPath> reply = co_await NetworkManager::addAndActivateConnection(settings->toMap(), m_nmModem->uni(), "");
|
||||||
if (!reply.isValid()) {
|
if (!reply.isValid()) {
|
||||||
qWarning() << QStringLiteral("Error adding connection:") << reply.error().message();
|
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);
|
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());
|
QDBusReply<void> reply = con->update(conSettings->toMap());
|
||||||
if (!reply.isValid()) {
|
if (!reply.isValid()) {
|
||||||
qWarning() << QStringLiteral("Error updating connection settings for") << connectionUni << QStringLiteral(":") << reply.error().message()
|
qWarning() << QStringLiteral("Error updating connection settings for") << connectionUni << QStringLiteral(":") << reply.error().message()
|
||||||
|
|
|
||||||
|
|
@ -14,6 +14,7 @@
|
||||||
#include <NetworkManagerQt/CdmaSetting>
|
#include <NetworkManagerQt/CdmaSetting>
|
||||||
#include <NetworkManagerQt/ConnectionSettings>
|
#include <NetworkManagerQt/ConnectionSettings>
|
||||||
#include <NetworkManagerQt/GsmSetting>
|
#include <NetworkManagerQt/GsmSetting>
|
||||||
|
#include <NetworkManagerQt/Ipv6Setting>
|
||||||
#include <NetworkManagerQt/Manager>
|
#include <NetworkManagerQt/Manager>
|
||||||
#include <NetworkManagerQt/ModemDevice>
|
#include <NetworkManagerQt/ModemDevice>
|
||||||
#include <NetworkManagerQt/Settings>
|
#include <NetworkManagerQt/Settings>
|
||||||
|
|
|
||||||
|
|
@ -18,6 +18,7 @@
|
||||||
#include <NetworkManagerQt/CdmaSetting>
|
#include <NetworkManagerQt/CdmaSetting>
|
||||||
#include <NetworkManagerQt/ConnectionSettings>
|
#include <NetworkManagerQt/ConnectionSettings>
|
||||||
#include <NetworkManagerQt/GsmSetting>
|
#include <NetworkManagerQt/GsmSetting>
|
||||||
|
#include <NetworkManagerQt/Ipv6Setting>
|
||||||
#include <NetworkManagerQt/Manager>
|
#include <NetworkManagerQt/Manager>
|
||||||
#include <NetworkManagerQt/Settings>
|
#include <NetworkManagerQt/Settings>
|
||||||
|
|
||||||
|
|
@ -96,6 +97,14 @@ QCoro::Task<void> AutoDetectAPN::checkAndAddAutodetectedAPN()
|
||||||
gsmSetting->setHomeOnly(false); // TODO respect modem roaming settings?
|
gsmSetting->setHomeOnly(false); // TODO respect modem roaming settings?
|
||||||
gsmSetting->setInitialized(true);
|
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(), "");
|
QDBusReply<QDBusObjectPath> reply = co_await NetworkManager::addAndActivateConnection(settings->toMap(), nmModem->uni(), "");
|
||||||
if (!reply.isValid()) {
|
if (!reply.isValid()) {
|
||||||
qCWarning(LOGGING_CATEGORY) << "Error adding autodetected connection:" << reply.error().message();
|
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");
|
QString mccmnc = element.attribute("mcc") + element.attribute("mnc");
|
||||||
|
|
||||||
if (mccmnc == operatorCode) {
|
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);
|
candidates.push_back(entry);
|
||||||
|
|
||||||
// check if we have an MVNO match and prioritize that
|
// check if we have an MVNO match and prioritize that
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ public:
|
||||||
struct APNEntry {
|
struct APNEntry {
|
||||||
QString apn;
|
QString apn;
|
||||||
QString carrier;
|
QString carrier;
|
||||||
|
QString protocol;
|
||||||
};
|
};
|
||||||
|
|
||||||
std::optional<APNEntry> findAPN(const QString &operatorCode, const QString &gid1, const QString &spn, const QString &imsi) const;
|
std::optional<APNEntry> findAPN(const QString &operatorCode, const QString &gid1, const QString &spn, const QString &imsi) const;
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue