Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHannah von Reth <hannah.vonreth@owncloud.com>2022-05-24 16:07:36 +0300
committerHannah von Reth <vonreth@kde.org>2022-05-25 15:21:44 +0300
commite81625c9706ac5280fed65f6b8af141963860072 (patch)
tree9ce22eeb4bc3c88c834921818627c253b0bbdb57 /src/libsync
parent0ae84fad0d718b084dc5bcefc2098ce4f4b8b7a3 (diff)
Use ocis productversion
Diffstat (limited to 'src/libsync')
-rw-r--r--src/libsync/account.cpp39
-rw-r--r--src/libsync/account.h17
-rw-r--r--src/libsync/capabilities.cpp27
-rw-r--r--src/libsync/capabilities.h34
-rw-r--r--src/libsync/syncengine.cpp2
5 files changed, 67 insertions, 52 deletions
diff --git a/src/libsync/account.cpp b/src/libsync/account.cpp
index 011ea5d2f..e5304b1ae 100644
--- a/src/libsync/account.cpp
+++ b/src/libsync/account.cpp
@@ -291,56 +291,31 @@ bool Account::hasCapabilities() const
void Account::setCapabilities(const Capabilities &caps)
{
_capabilities = caps;
-}
-
-QString Account::serverProductName() const
-{
- return _serverProduct;
-}
-QString Account::serverVersionString() const
-{
- return _serverVersion;
+ Q_EMIT serverVersionChanged();
}
bool Account::serverVersionUnsupported() const
{
- if (serverVersion().isNull() || serverProductName().isEmpty()) {
+ if (!hasCapabilities()) {
// not detected yet, assume it is fine.
return false;
}
- // TODO: this is a work around for a ocis announcing version 2.0.0
- // next version will announce ocisvison and keep version to 10
- if (serverProductName() == QLatin1String("Infinite Scale")) {
+
+ // ocis
+ if (!capabilities().status().productversion.isEmpty()) {
return false;
}
// Older version which is not "end of life" according to https://github.com/owncloud/core/wiki/Maintenance-and-Release-Schedule
- if (serverVersion() < QVersionNumber(10)) {
+ if (capabilities().status().legacyVersion < QVersionNumber(10)) {
return true;
}
- if (serverProductName().endsWith(QLatin1String("Nextcloud"))) {
+ if (capabilities().status().productname.endsWith(QLatin1String("Nextcloud"))) {
return true;
}
return false;
}
-QVersionNumber Account::serverVersion() const
-{
- return QVersionNumber::fromString(_serverVersion);
-}
-
-void Account::setServerInfo(const QString &version, const QString &productName)
-{
- _serverProduct = productName;
- if (version == _serverVersion) {
- return;
- }
-
- auto oldServerVersion = _serverVersion;
- _serverVersion = version;
- emit serverVersionChanged(this, oldServerVersion, version);
-}
-
QString Account::defaultSyncRoot() const
{
Q_ASSERT(!_defaultSyncRoot.isEmpty());
diff --git a/src/libsync/account.h b/src/libsync/account.h
index 4b174485d..4230e563c 100644
--- a/src/libsync/account.h
+++ b/src/libsync/account.h
@@ -168,19 +168,6 @@ public:
bool hasCapabilities() const;
-
- /** Access the server version
- *
- * For servers >= 10.0.0, this can be the empty string until capabilities
- * have been received.
- */
- QString serverVersionString() const;
- QVersionNumber serverVersion() const;
-
- QString serverProductName() const;
-
- void setServerInfo(const QString &version, const QString &product);
-
/** Whether the server is too old.
*
* Not supporting server versions is a gradual process. There's a hard
@@ -224,7 +211,7 @@ signals:
// e.g. when the approved SSL certificates changed
void wantsAccountSaved(Account *acc);
- void serverVersionChanged(Account *account, const QString &newVersion, const QString &oldVersion);
+ void serverVersionChanged();
void accountChangedAvatar();
void accountChangedDisplayName();
@@ -255,8 +242,6 @@ private:
QSet<QSslCertificate> _approvedCerts;
Capabilities _capabilities;
- QString _serverVersion;
- QString _serverProduct;
QuotaInfo *_quotaInfo;
QPointer<AccessManager> _am;
QScopedPointer<AbstractCredentials> _credentials;
diff --git a/src/libsync/capabilities.cpp b/src/libsync/capabilities.cpp
index 8559ff920..c945334eb 100644
--- a/src/libsync/capabilities.cpp
+++ b/src/libsync/capabilities.cpp
@@ -28,6 +28,7 @@ Capabilities::Capabilities(const QVariantMap &capabilities)
, _fileSharingPublicCapabilities(_fileSharingCapabilities.value(QStringLiteral("public"), {}).toMap())
, _tusSupport(_capabilities.value(QStringLiteral("files")).toMap().value(QStringLiteral("tus_support")).toMap())
, _spaces(_capabilities.value(QStringLiteral("spaces")).toMap())
+ , _status(_capabilities.value(QStringLiteral("core")).toMap().value(QStringLiteral("status")).toMap())
{
}
@@ -180,12 +181,16 @@ bool Capabilities::bigfilechunkingEnabled() const
return _capabilities.value(QStringLiteral("files")).toMap().value(QStringLiteral("bigfilechunking"), true).toBool();
}
+const Status &Capabilities::status() const
+{
+ return _status;
+}
+
const TusSupport &Capabilities::tusSupport() const
{
return _tusSupport;
}
-
const SpaceSupport &Capabilities::spacesSupport() const
{
return _spaces;
@@ -248,6 +253,26 @@ QStringList Capabilities::blacklistedFiles() const
return _capabilities.value(QStringLiteral("files")).toMap().value(QStringLiteral("blacklisted_files")).toStringList();
}
+Status::Status(const QVariantMap &status)
+{
+ legacyVersion = QVersionNumber::fromString(status.value(QStringLiteral("version")).toString());
+ legacyVersionString = status.value(QStringLiteral("versionstring")).toString();
+ edition = status.value(QStringLiteral("edition")).toString();
+ productname = status.value(QStringLiteral("productname")).toString();
+ product = status.value(QStringLiteral("product")).toString();
+ productversion = status.value(QStringLiteral("productversion")).toString();
+}
+
+QVersionNumber Status::version() const
+{
+ return productversion.isEmpty() ? legacyVersion : QVersionNumber::fromString(productversion);
+}
+
+QString Status::versionString() const
+{
+ return productversion.isEmpty() ? legacyVersionString : productversion;
+}
+
TusSupport::TusSupport(const QVariantMap &tus_support)
{
if (tus_support.isEmpty() || qEnvironmentVariableIsSet("OWNCLOUD_NO_TUS")) {
diff --git a/src/libsync/capabilities.h b/src/libsync/capabilities.h
index ab09cabc1..09baf03dd 100644
--- a/src/libsync/capabilities.h
+++ b/src/libsync/capabilities.h
@@ -24,8 +24,36 @@
namespace OCC {
+struct OWNCLOUDSYNC_EXPORT Status
+{
+ /**
+ <installed>1</installed>
+ <maintenance>0</maintenance>
+ <needsDbUpgrade>0</needsDbUpgrade>
+ <version>10.11.0.0</version>
+ <versionstring>10.11.0</versionstring>
+ <edition>Community</edition>
+ <productname>Infinite Scale</productname>
+ <product>Infinite Scale</product>
+ <productversion>2.0.0-beta1+7c2e3201b</productversion>
+ */
+
+ Status(const QVariantMap &status);
+ // legacy version
+ QVersionNumber legacyVersion;
+ // legacy version
+ QString legacyVersionString;
+
+ QString edition;
+ QString productname;
+ QString product;
+ QString productversion;
+
+ QVersionNumber version() const;
+ QString versionString() const;
+};
-struct TusSupport
+struct OWNCLOUDSYNC_EXPORT TusSupport
{
/**
<tus_support>
@@ -46,7 +74,7 @@ struct TusSupport
bool isValid() const;
};
-struct SpaceSupport
+struct OWNCLOUDSYNC_EXPORT SpaceSupport
{
/**
"spaces": {
@@ -105,6 +133,7 @@ public:
/// Wheter to use chunking
bool bigfilechunkingEnabled() const;
+ const Status &status() const;
const TusSupport &tusSupport() const;
const SpaceSupport &spacesSupport() const;
@@ -208,6 +237,7 @@ private:
QVariantMap _fileSharingPublicCapabilities;
TusSupport _tusSupport;
SpaceSupport _spaces;
+ Status _status;
};
}
diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp
index d4a25f1a7..7496aee1a 100644
--- a/src/libsync/syncengine.cpp
+++ b/src/libsync/syncengine.cpp
@@ -458,7 +458,7 @@ void SyncEngine::startSync()
emit transmissionProgress(*_progressInfo);
qCInfo(lcEngine) << "#### Discovery start ####################################################";
- qCInfo(lcEngine) << "Server" << account()->serverVersion()
+ qCInfo(lcEngine) << "Server" << account()->capabilities().status().versionString()
<< (account()->isHttp2Supported() ? "Using HTTP/2" : "");
_progressInfo->_status = ProgressInfo::Discovery;
emit transmissionProgress(*_progressInfo);