mirror of
https://github.com/nextcloud/desktop.git
synced 2024-12-21 05:13:04 +03:00
5483682281
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.
50 lines
1.4 KiB
C++
50 lines
1.4 KiB
C++
/*
|
|
* Copyright (C) by Daniel Molkentin <danimo@owncloud.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; version 2 of the License.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but
|
|
* WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
* for more details.
|
|
*/
|
|
|
|
#ifndef MIRALL_COOKIEJAR_H
|
|
#define MIRALL_COOKIEJAR_H
|
|
|
|
#include <QNetworkCookieJar>
|
|
|
|
#include "owncloudlib.h"
|
|
|
|
namespace OCC {
|
|
|
|
class OWNCLOUDSYNC_EXPORT CookieJar : public QNetworkCookieJar
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit CookieJar(QObject *parent = 0);
|
|
~CookieJar();
|
|
bool setCookiesFromUrl(const QList<QNetworkCookie> &cookieList, const QUrl &url) Q_DECL_OVERRIDE;
|
|
QList<QNetworkCookie> cookiesForUrl(const QUrl &url) const Q_DECL_OVERRIDE;
|
|
|
|
void clearSessionCookies();
|
|
|
|
using QNetworkCookieJar::setAllCookies;
|
|
using QNetworkCookieJar::allCookies;
|
|
|
|
void save();
|
|
|
|
signals:
|
|
void newCookiesForUrl(const QList<QNetworkCookie>& cookieList, const QUrl& url);
|
|
private:
|
|
void restore();
|
|
QList<QNetworkCookie> removeExpired(const QList<QNetworkCookie> &cookies);
|
|
QString storagePath() const;
|
|
|
|
};
|
|
|
|
} // namespace OCC
|
|
|
|
#endif // MIRALL_COOKIEJAR_H
|