]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
While talking to host a.b.c, libcurl did wrongly not accept cookies that were
authorDaniel Stenberg <daniel@haxx.se>
Fri, 21 May 2004 20:40:15 +0000 (20:40 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Fri, 21 May 2004 20:40:15 +0000 (20:40 +0000)
set to the domain .a.b.c (that is with a dot prefix). This is now fixed and
test case 171 verifies it.

CHANGES
lib/cookie.c
tests/data/Makefile.am
tests/data/test171 [new file with mode: 0644]

diff --git a/CHANGES b/CHANGES
index d3dd5922c4fc9d6cc0377ee5af750a1ff2fb39dc..3dfb5cde0168318edd9ec32f1a10541ed6f79bd9 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,11 @@
 
                                   Changelog
 
+Daniel (21 May 2004)
+- While talking to host a.b.c, libcurl did wrongly not accept cookies that
+  were set to the domain .a.b.c (that is with a dot prefix). This is now fixed
+  and test case 171 verifies it.
+
 Daniel (20 May 2004)
 - Jesse Noller reported that the upload speed info reported by libcurl was
   wrong. The same was true for the download speed. Fixed now.
index 693b5f98e2ef6c8aa54094c3a85cdfe8aba4c1da..d31bcd114c63fcd96c230c87cff88570e82c0a4b 100644 (file)
@@ -261,6 +261,9 @@ Curl_cookie_add(struct SessionHandle *data,
               /* Now, we make sure that our host is within the given domain,
                  or the given domain is not valid and thus cannot be set. */
 
+              if('.' == whatptr[0])
+                whatptr++; /* ignore preceeding dot */
+
               if(!domain || tailmatch(whatptr, domain)) {
                 const char *tailptr=whatptr;
                 if(tailptr[0] == '.')
index 412fcda7bb808f0af6509e58189964f9c6869c78..a6446d7d6702ed0d8e43d65285912dc95db16e96 100644 (file)
@@ -23,7 +23,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46        \
  test203 test93 test94 test95 test509 test510 test97 test98 test99     \
  test150 test151 test152 test153 test154 test155 test156 test157       \
  test158 test159 test511 test160 test161 test162 test163 test164       \
- test512 test165 test166 test167 test168 test169 test170
+ test512 test165 test166 test167 test168 test169 test170 test171
 
 # The following tests have been removed from the dist since they no longer
 # work. We need to fix the test suite's FTPS server first, then bring them
diff --git a/tests/data/test171 b/tests/data/test171
new file mode 100644 (file)
index 0000000..9a35198
--- /dev/null
@@ -0,0 +1,47 @@
+# Server-side
+<reply>
+<data>
+HTTP/1.1 200 OK
+Date: Tue, 25 Sep 2001 19:37:44 GMT
+Content-Type: text/html
+Set-Cookie: XToken=xt;Domain=.z.x.com;Path=/
+Cache-control: private
+Content-Length: 62\r
+
+This server reply is for testing a simple Location: following
+</data>
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+HTTP, get cookies and store in cookie jar
+ </name>
+ <command>
+-c log/jar171 -x %HOSTIP:%HOSTPORT http://z.x.com/171
+</command>
+</client>
+
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent:.*
+</strip>
+<protocol>
+GET http://z.x.com/171 HTTP/1.1\r
+Host: z.x.com\r
+Pragma: no-cache\r
+Accept: */*\r
+\r
+</protocol>
+<file name="log/jar171">
+# Netscape HTTP Cookie File
+# http://www.netscape.com/newsref/std/cookie_spec.html
+# This file was generated by libcurl! Edit at your own risk.
+
+.z.x.com       TRUE    /       FALSE   0       XToken  xt
+</file>
+</verify>