Ejemplo n.º 1
0
void CookieJar::load()
{
    QFile cookieFile(m_cookieFileName);
    if (!cookieFile.open(QIODevice::ReadOnly))
        return;

    QDataStream stream(&cookieFile);
    quint8 version;
    stream >> version;
    if (version != cookieFileVersion)
        return;

    QList<QNetworkCookie> cookies;
    qint32 count;
    stream >> count;

#if QT_VERSION >= QT_VERSION_CHECK(4, 7, 0)
    cookies.reserve(count);
#endif
    for (int i = 0; i < count && !stream.atEnd(); ++i) {
        QByteArray rawCookie;
        stream >> rawCookie;
        cookies += QNetworkCookie::parseCookies(rawCookie);
    }

    setAllCookies(cookies);

    expireCookies();
}
Ejemplo n.º 2
0
void CookieJar::save()
{
    expireCookies();

    QByteArray cookieData;
    QDataStream stream(&cookieData, QIODevice::WriteOnly);
    stream << cookieFileVersion;
    QList<QNetworkCookie> cookies = allCookies();

    QMutableListIterator<QNetworkCookie> it(cookies);
    while (it.hasNext()) {
        if (it.next().isSessionCookie())
            it.remove();
    }

    stream << qint32(cookies.count());
    foreach (const QNetworkCookie& cookie, cookies)
        stream << cookie.toRawForm();

    QFile cookieFile(m_cookieFileName + ".tmp");
    if (!cookieFile.open(QIODevice::WriteOnly | QIODevice::Truncate))
        return;

    cookieFile.write(cookieData);
    cookieFile.close();
    // ### use atomic rename
    QFile::remove(m_cookieFileName);
    cookieFile.rename(m_cookieFileName);
}
Ejemplo n.º 3
0
void CookieJar::saveCookies(const QString& filename)
{
  purgeOldCookies();
  QFile cookieFile(filename);
  if (!cookieFile.open(QIODevice::WriteOnly)) {
    qWarning("Couldn't save cookie file.");
    return;
  }
  auto cookies = allCookies();
  for (const auto &c : cookies) {
    cookieFile.write(c.toRawForm());
    cookieFile.write("\n");
  }
}
Ejemplo n.º 4
0
void CookieJar::loadCookies(const QString& filename)
{
  QFile cookieFile(filename);
  if (!cookieFile.open(QIODevice::ReadOnly)) {
    qWarning("Couldn't read cookie file.");
    return;
  }
  QList<QNetworkCookie> cookies = QNetworkCookie::parseCookies(cookieFile.readAll());
  if (cookies.count() == 0) {
    qWarning() << "Failed to load cookie";
  } else {
    setAllCookies(cookies);
  }
}
Ejemplo n.º 5
0
Cookies::~Cookies()
{
	QFile cookieFile(Multiuso::appDirPath() + "/navigateurWeb/autre/cookies.mltscookie");

	if (cookieFile.open(QIODevice::WriteOnly))
	{
		QTextStream out(&cookieFile);
			out.setCodec("UTF-8");

		foreach(const QNetworkCookie &cookie, allCookies())
		{
			if (!cookie.isSessionCookie())
				out << cookie.toRawForm() << endl;
		}
	}
Ejemplo n.º 6
0
Cookies::Cookies(QObject *parent) : QNetworkCookieJar(parent)
{
	QFile cookieFile(Multiuso::appDirPath() + "/navigateurWeb/autre/cookies.mltscookie");

	if (cookieFile.exists() && cookieFile.open(QIODevice::ReadOnly))
	{
		QList<QNetworkCookie> list;

		QByteArray line;

		while (!(line = cookieFile.readLine()).isNull())
			list.append(QNetworkCookie::parseCookies(line));

		setAllCookies(list);
	}
}
Ejemplo n.º 7
0
void CookieJar::saveCookies() {
    QFile cookieFile(QDir::homePath()+"/.ybdb/cookies");
	cookieFile.open(QFile::WriteOnly);

	qDebug() << "Saving all cookies: " << saveAll;
	//Save cookies, if there are in the allowesCookieDomains-list
	QList<QNetworkCookie> cookies = allCookies();

	for (int i = 0; i < cookies.size(); i++) {
		bool allowed = false;

		//Check if cookies may not be saved
		if (cookies.value(i).isSessionCookie()) continue;
		if (cookies.value(i).expirationDate() < QDateTime::currentDateTime()) continue;

		//Only save non session cookies and is not expirated
		foreach (QString d, allowedCookieDomains) {
			if (saveAll || cookies.value(i).domain().endsWith(d)) {
				allowed = true;
				break;
			}
		}

		if (allowed) {
			cookieFile.write(cookies.value(i).toRawForm()+"\n");
			qDebug() << "Saved cookie from: " << cookies.value(i).domain();
		} else {
			qDebug() << "Discarded cookie from: " << cookies.value(i).domain();
		}
	}
	cookieFile.flush();
	cookieFile.close();

	//Save the save all settings
	Settings::set("saveallcookies", QVariant(saveAll));
}