[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: branches/KDE/4.3/kdelibs/kioslave/http/kcookiejar
From: Dawit Alemayehu <adawit () kde ! org>
Date: 2009-12-14 17:30:20
Message-ID: 1260811820.699580.5501.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 1062412 by adawit:
Backport the fix for the Y2K38 problem with the cookiejar's expiration date variable
M +8 -8 kcookiejar.cpp
M +4 -4 kcookiejar.h
M +2 -2 kcookiewin.cpp
M +5 -0 tests/cookie.test
--- branches/KDE/4.3/kdelibs/kioslave/http/kcookiejar/kcookiejar.cpp #1062411:1062412
@@ -129,7 +129,7 @@
const QString &_path,
const QString &_name,
const QString &_value,
- time_t _expireDate,
+ qint64 _expireDate,
int _protocolVersion,
bool _secure,
bool _httpOnly,
@@ -150,7 +150,7 @@
//
// Checks if a cookie has been expired
//
-bool KHttpCookie::isExpired(time_t currentDate) const
+bool KHttpCookie::isExpired(qint64 currentDate) const
{
return (mExpireDate != 0) && (mExpireDate < currentDate);
}
@@ -722,7 +722,7 @@
// Insert cookie in chain
cookieList.append(cookie);
- lastCookie = cookieList.end(); --lastCookie;
+ lastCookie = cookieList.end(); --lastCookie;
}
else if (strncasecmp(cookieStr, "Set-Cookie2:", 12) == 0)
{
@@ -1246,7 +1246,7 @@
QTextStream ts(&saveFile);
- time_t curTime = time(0);
+ qint64 curTime = time(0);
ts << "# KDE Cookie File v2\n#\n";
@@ -1283,9 +1283,9 @@
domain += cookie.domain();
domain += '"';
// TODO: replace with direct QTextStream output ?
- s.sprintf("%-20s %-20s %-12s %10lu %3d %-20s %-4i %s\n",
+ s.sprintf("%-20s %-20s %-12s %10lld %3d %-20s %-4i %s\n",
cookie.host().toLatin1().constData(), \
domain.toLatin1().constData(),
- path.toLatin1().constData(), (unsigned long) \
cookie.expireDate(), + path.toLatin1().constData(), \
cookie.expireDate(), cookie.protocolVersion(),
cookie.name().isEmpty() ? \
cookie.value().toLatin1().constData() : \
cookie.name().toLatin1().constData(),
(cookie.isSecure() ? 1 : 0) + (cookie.isHttpOnly() ? 2 : 0) \
+ @@ -1342,7 +1342,7 @@
return false;
}
- time_t curTime = time(0);
+ qint64 curTime = time(0);
char *buffer = new char[READ_BUFFER_SIZE];
@@ -1378,7 +1378,7 @@
const QString path = QString::fromLatin1( parseField(line) );
const QString expStr = QString::fromLatin1( parseField(line) );
if (expStr.isEmpty()) continue;
- const int expDate = expStr.toInt();
+ const qint64 expDate = expStr.toLongLong();
const QString verStr = QString::fromLatin1( parseField(line) );
if (verStr.isEmpty()) continue;
int protVer = verStr.toInt();
--- branches/KDE/4.3/kdelibs/kioslave/http/kcookiejar/kcookiejar.h #1062411:1062412
@@ -58,7 +58,7 @@
QString mPath;
QString mName;
QString mValue;
- time_t mExpireDate;
+ qint64 mExpireDate;
int mProtocolVersion;
bool mSecure;
bool mCrossDomain;
@@ -74,7 +74,7 @@
const QString &_path=QString(),
const QString &_name=QString(),
const QString &_value=QString(),
- time_t _expireDate=0,
+ qint64 _expireDate=0,
int _protocolVersion=0,
bool _secure = false,
bool _httpOnly = false,
@@ -88,10 +88,10 @@
QList<long> &windowIds() { return mWindowIds; }
const QList<long> &windowIds() const { return mWindowIds; }
void fixDomain(const QString &domain) { mDomain = domain; }
- time_t expireDate() const { return mExpireDate; }
+ qint64 expireDate() const { return mExpireDate; }
int protocolVersion() const { return mProtocolVersion; }
bool isSecure() const { return mSecure; }
- bool isExpired(time_t currentDate) const;
+ bool isExpired(qint64 currentDate) const;
bool isCrossDomain() const { return mCrossDomain; }
bool isHttpOnly() const { return mHttpOnly; }
bool hasExplicitPath() const { return mExplicitPath; }
--- branches/KDE/4.3/kdelibs/kioslave/http/kcookiejar/kcookiewin.cpp #1062411:1062412
@@ -40,7 +40,6 @@
#include <QtGui/QLabel>
#include <QtGui/QLayout>
#include <QtGui/QGroupBox>
-#include <QtCore/QDate>
#include <QtGui/QPushButton>
#include <QtGui/QRadioButton>
#include <QtGui/QShortcut>
@@ -53,6 +52,7 @@
#include <kapplication.h>
#include <kwindowsystem.h>
#include <kvbox.h>
+#include <kdatetime.h>
KCookieWin::KCookieWin( QWidget *parent, KHttpCookieList cookieList,
int defaultButton, bool showDetails )
@@ -284,7 +284,7 @@
else
m_domain->setText(cookie.domain());
m_path->setText(cookie.path());
- QDateTime cookiedate;
+ KDateTime cookiedate;
cookiedate.setTime_t(cookie.expireDate());
if (cookie.expireDate())
m_expires->setText(KGlobal::locale()->formatDateTime(cookiedate));
--- branches/KDE/4.3/kdelibs/kioslave/http/kcookiejar/tests/cookie.test \
#1062411:1062412 @@ -160,3 +160,8 @@
CHECK https://192.168.0.1 Cookie: name1=value1; name11=value11; name3=value3
CHECK http://192.168.0.10
CHECK http://192.168.0
+## Check expiration dates for the so called Y2K38 (Year 2038) problem
+COOKIE ASK http://foo.bar Set-Cookie: CFID=15727;expires=Tue, 06-Dec-2039 00:30:42 \
GMT;path=/ +COOKIE ASK http://foo.bar Set-Cookie: CFTOKEN=49898422;expires=Tue, \
06-Dec-2039 00:30:42 GMT;path=/ +CHECK http://foo.bar Cookie: CFID=15727; \
CFTOKEN=49898422 +CLEAR COOKIES
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic