summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMorten Sørvig <msorvig@trolltech.com>2009-03-20 14:39:51 +0100
committerMorten Sørvig <msorvig@trolltech.com>2009-03-20 14:39:51 +0100
commit6476f625bc3e58c945316ec5dcfc0f3a1acbe083 (patch)
tree6264225d5d21d7351a1128bcaffbf044c35d4f62 /src
parentc9be837e74ea1ef6b004b0df0f65d2dce32b7d49 (diff)
Fix cookie parsing.
QNetworkCookie::parse actually only works on the client side.. This should improve browser compatibility.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/webclientserver.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/webclientserver.cpp b/src/webclientserver.cpp
index 3965ebb..6fbaae9 100755
--- a/src/webclientserver.cpp
+++ b/src/webclientserver.cpp
@@ -47,13 +47,16 @@ void HttpRequest::parseText()
if (line.startsWith("GET")) {
m_path = line.mid(4).split(' ').at(0); // ### assumes well-formed string
} else if (line.startsWith("Cookie:")) {
- DEBUG << "cookie line" << line.simplified();
- //DEBUG << line.split(':').at(1).simplified();
- m_cookies = line.split(':').at(1).simplified();
-
-
-
- m_parsedCookies = QNetworkCookie::parseCookies(m_cookies);
+// qDebug() << "cookie line" << line.simplified();
+ m_cookies = line.mid(7).simplified(); // remove "Cookie:"
+// qDebug() << "cookies text" << m_cookies;
+ foreach (const QByteArray cookieText, m_cookies.split(';')){
+ if (cookieText.contains('=')) {
+ QList<QByteArray> cookieParts = cookieText.split('=');
+ QNetworkCookie cookie(cookieParts.at(0).simplified(), cookieParts.at(1).simplified());
+ m_parsedCookies.append(cookie);
+ }
+ }
} else if (line.startsWith("Host")) {
QByteArray hostline = line.split(' ').at(1); // ###
hostline.chop(2); // remove newline