Version: (using KDE KDE 3.5.2) Installed from: Gentoo Packages Compiler: Gentoo-linux/x86/2006.0, gcc-4.1.1, glibc-2.4-r3, 2.6.17-gentoo-r8 i686 OS: Linux When server, wich named by IP adress, sets cookie, konqueror saves it but doesn't send it back. When server named by symbolic domain name - everything are correct.
Sorry, priority and severity level was changed by mistake.
SVN commit 707427 by adawit: - Send back saved cookies that came from ip-address based hosts. - Added a test case to exercise given secnairo above. BUG: 134753 M +2 -10 kcookiejar.cpp M +10 -0 tests/cookie.test --- trunk/KDE/kdelibs/kioslave/http/kcookiejar/kcookiejar.cpp #707426:707427 @@ -79,6 +79,7 @@ #define MAX_COOKIES_PER_HOST 25 #define READ_BUFFER_SIZE 8192 +#define IP_ADDRESS_EXPRESSION "(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" // Note with respect to QString::fromLatin1( ) // Cookies are stored as 8 bit data and passed to kio_http as @@ -614,17 +615,8 @@ // Return numeric IPv4 addresses as is... if ((_fqdn[0] >= '0') && (_fqdn[0] <= '9')) { - bool allNumeric = true; - for(int i = _fqdn.length(); i--;) + if (_fqdn.find(QRegExp(IP_ADDRESS_EXPRESSION)) > -1) { - if (!strchr("0123456789:.", _fqdn[i].toLatin1())) - { - allNumeric = false; - break; - } - } - if (allNumeric) - { _domains.append( _fqdn ); return; } --- trunk/KDE/kdelibs/kioslave/http/kcookiejar/tests/cookie.test #707426:707427 @@ -149,3 +149,13 @@ CONFIG AcceptSessionCookies true COOKIE ACCEPT http://www.foobar.com Set-Cookie: from=foobar.com; domain=bar.com; Path="/" CHECK http://bar.com +## Check cookies with IP address hostnames +COOKIE ASK http://192.168.0.1 Set-Cookie: name1=value1; Path="/"; expires=%NEXTYEAR% +COOKIE ASK http://192.168.0.1 Set-Cookie: name11=value11; domain="test.local"; Path="/"; expires=%NEXTYEAR% +COOKIE ASK http://192.168.0.1:8080 Set-Cookie: name2=value2; Path="/"; expires=%NEXTYEAR% +COOKIE ASK https://192.168.0.1 Set-Cookie: name3=value3; Path="/"; expires=%NEXTYEAR%; secure +CHECK http://192.168.0.1 Cookie: name11=value11; name1=value1 +CHECK http://192.168.0.1:8080 Cookie: name2=value2 +CHECK https://192.168.0.1 Cookie: name3=value3; name11=value11; name1=value1 +CHECK http://192.168.0.10 +CHECK http://192.168.0