[Pkg-owncloud-commits] [owncloud-client] 64/83: Only remove session cookies
Sandro Knauß
hefee-guest at moszumanska.debian.org
Sat May 31 11:31:44 UTC 2014
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 ebe1f986f1ae808e25ed632aa67b85eee9d23d9d
Author: Olivier Goffart <ogoffart at woboq.com>
Date: Wed May 28 15:24:14 2014 +0200
Only remove session cookies
This should disconnect without loosing long lived cookie
---
src/creds/shibbolethcredentials.cpp | 3 ++-
src/mirall/cookiejar.cpp | 6 +++---
src/mirall/cookiejar.h | 2 +-
3 files changed, 6 insertions(+), 5 deletions(-)
diff --git a/src/creds/shibbolethcredentials.cpp b/src/creds/shibbolethcredentials.cpp
index d6ac7fa..8d6fa17 100644
--- a/src/creds/shibbolethcredentials.cpp
+++ b/src/creds/shibbolethcredentials.cpp
@@ -215,7 +215,8 @@ void ShibbolethCredentials::persist(Account* account)
void ShibbolethCredentials::invalidateToken(Account *account)
{
CookieJar *jar = static_cast<CookieJar*>(account->networkAccessManager()->cookieJar());
- jar->clearCookies();
+ jar->deleteCookie(_shibCookie);
+ jar->clearSessionCookies();
removeShibCookie(account);
_shibCookie = QNetworkCookie();
// ### access to ctx missing, but might not be required at all
diff --git a/src/mirall/cookiejar.cpp b/src/mirall/cookiejar.cpp
index 19a0cf2..53539ac 100644
--- a/src/mirall/cookiejar.cpp
+++ b/src/mirall/cookiejar.cpp
@@ -106,9 +106,9 @@ bool CookieJar::deleteCookie(const QNetworkCookie &delCookie)
return removeSucceeded;
}
-void CookieJar::clearCookies()
+void CookieJar::clearSessionCookies()
{
- setAllCookies(QList<QNetworkCookie>());
+ setAllCookies(removeExpired(allCookies()));
}
@@ -139,7 +139,7 @@ QList<QNetworkCookie> CookieJar::removeExpired(const QList<QNetworkCookie> &cook
{
QList<QNetworkCookie> updatedList;
foreach(const QNetworkCookie &cookie, cookies) {
- if (cookie.expirationDate() > QDateTime::currentDateTime()) {
+ if (cookie.expirationDate() > QDateTime::currentDateTime() && !cookie.isSessionCookie()) {
updatedList << cookie;
}
}
diff --git a/src/mirall/cookiejar.h b/src/mirall/cookiejar.h
index 818f67a..6e84c80 100644
--- a/src/mirall/cookiejar.h
+++ b/src/mirall/cookiejar.h
@@ -30,7 +30,7 @@ public:
QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const;
virtual bool deleteCookie(const QNetworkCookie & cookie);
- void clearCookies();
+ void clearSessionCookies();
signals:
void newCookiesForUrl(const QList<QNetworkCookie>& cookieList, const QUrl& url);
--
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