[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