From f8c0e796df871b32b74ac91f4a1541690bf01c3e Mon Sep 17 00:00:00 2001 From: Christian Kamm Date: Wed, 26 Apr 2017 10:12:26 +0200 Subject: [PATCH] SqlDatabase: Ask freeSpace for directory, fix for Windows See owncloud/enterprise#1955 --- src/libsync/ownsql.cpp | 6 ++++-- src/libsync/utility.h | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/libsync/ownsql.cpp b/src/libsync/ownsql.cpp index e4cebd793..7008ccf52 100644 --- a/src/libsync/ownsql.cpp +++ b/src/libsync/ownsql.cpp @@ -17,6 +17,8 @@ #include #include #include +#include +#include #include "ownsql.h" #include "utility.h" @@ -101,8 +103,8 @@ bool SqlDatabase::openOrCreateReadWrite( const QString& filename ) if( !checkDb() ) { // When disk space is low, checking the db may fail even though it's fine. - qint64 freeSpace = Utility::freeDiskSpace(filename); - if (freeSpace < 1000000) { + qint64 freeSpace = Utility::freeDiskSpace(QFileInfo(filename).dir().absolutePath()); + if (freeSpace != -1 && freeSpace < 1000000) { qDebug() << "Consistency check failed, disk space is low, aborting" << freeSpace; close(); return false; diff --git a/src/libsync/utility.h b/src/libsync/utility.h index 5fb60c729..95febc911 100644 --- a/src/libsync/utility.h +++ b/src/libsync/utility.h @@ -43,6 +43,12 @@ namespace Utility OWNCLOUDSYNC_EXPORT QByteArray userAgentString(); OWNCLOUDSYNC_EXPORT bool hasLaunchOnStartup(const QString &appName); OWNCLOUDSYNC_EXPORT void setLaunchOnStartup(const QString &appName, const QString& guiName, bool launch); + + /** + * Return the amount of free space available. + * + * \a path must point to a directory + */ OWNCLOUDSYNC_EXPORT qint64 freeDiskSpace(const QString &path); /** -- 2.30.2