diff options
author | Morten Sørvig <msorvig@trolltech.com> | 2009-03-20 14:39:51 +0100 |
---|---|---|
committer | Morten Sørvig <msorvig@trolltech.com> | 2009-03-20 14:39:51 +0100 |
commit | 6476f625bc3e58c945316ec5dcfc0f3a1acbe083 (patch) | |
tree | 6264225d5d21d7351a1128bcaffbf044c35d4f62 /src | |
parent | c9be837e74ea1ef6b004b0df0f65d2dce32b7d49 (diff) |
Fix cookie parsing.
QNetworkCookie::parse actually only works on the client side..
This should improve browser compatibility.
Diffstat (limited to 'src')
-rwxr-xr-x | src/webclientserver.cpp | 17 |
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 |