[Pkg-owncloud-commits] [owncloud-client] 44/159: CookieJar: Don't accidentally overwrite cookies. #2808
Sandro Knauß
hefee-guest at moszumanska.debian.org
Fri May 1 13:05:20 UTC 2015
This is an automated email from the git hooks/post-receive script.
hefee-guest pushed a commit to branch master
in repository owncloud-client.
commit 54836822813a18c725c2916232103779ef9e75ab
Author: Christian Kamm <kamm at incasoftware.de>
Date: Fri Mar 27 10:49:24 2015 +0100
CookieJar: Don't accidentally overwrite cookies. #2808
Calling save() in the CookieJar destructor was problematic. For instance
we sometimes create a new QNAM with a new CookieJar and then call
setCookieJar() on it to assign some other jar. That destroy the fresh
jar and potentially overwrite cookies.
Also explicitly saving the account's cookies when the account is saved
is more explicit and thus more reliable than counting on the Account
destructor to do it.
---
src/libsync/account.cpp | 9 +++++++++
src/libsync/cookiejar.cpp | 1 -
src/libsync/cookiejar.h | 3 ++-
3 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/src/libsync/account.cpp b/src/libsync/account.cpp
index 14e3ad2..a46611d 100644
--- a/src/libsync/account.cpp
+++ b/src/libsync/account.cpp
@@ -131,6 +131,15 @@ void Account::save()
if (!certs.isEmpty()) {
settings->setValue( QLatin1String(caCertsKeyC), certs );
}
+
+ // Save cookies.
+ if (_am) {
+ CookieJar* jar = qobject_cast<CookieJar*>(_am->cookieJar());
+ if (jar) {
+ qDebug() << "Saving cookies.";
+ jar->save();
+ }
+ }
}
AccountPtr Account::restore()
diff --git a/src/libsync/cookiejar.cpp b/src/libsync/cookiejar.cpp
index 62aa2cc..6290059 100644
--- a/src/libsync/cookiejar.cpp
+++ b/src/libsync/cookiejar.cpp
@@ -71,7 +71,6 @@ CookieJar::CookieJar(QObject *parent) :
CookieJar::~CookieJar()
{
- save();
}
bool CookieJar::setCookiesFromUrl(const QList<QNetworkCookie>& cookieList, const QUrl& url)
diff --git a/src/libsync/cookiejar.h b/src/libsync/cookiejar.h
index a7c8c67..99cbfbf 100644
--- a/src/libsync/cookiejar.h
+++ b/src/libsync/cookiejar.h
@@ -34,10 +34,11 @@ public:
using QNetworkCookieJar::setAllCookies;
using QNetworkCookieJar::allCookies;
+ void save();
+
signals:
void newCookiesForUrl(const QList<QNetworkCookie>& cookieList, const QUrl& url);
private:
- void save();
void restore();
QList<QNetworkCookie> removeExpired(const QList<QNetworkCookie> &cookies);
QString storagePath() const;
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-owncloud/owncloud-client.git
More information about the Pkg-owncloud-commits
mailing list