[drakma-devel] duplicate cookies problem with proposed patch

Vsevolod Dyomkin vseloved at gmail.com
Thu Jul 29 09:22:55 UTC 2010


Hi,

I want to re-raise the topic of duplicate cookies.  I've had this issue with
the older version of Drakma (1.1.0) and was unaware of the patch with
*remove-duplicate-cookies-p*.
But investigating the problem (before I've read the discussion in the
mailing list), I've encountered it's cause in the source code, that is
highlighted in the attached diff.  The problem is, that SET-DIFFERENCE and
UNION are not supplied COOKIE= tests in UPDATE-COOKIES.

It still remains in the current version (1.2.2) and can be tested like this:

CL-USER> (defvar *cookies* (make-instance 'drakma:cookie-jar))
*COOKIES*
CL-USER> (drakma::update-cookies (list (make-instance 'drakma:cookie :name
"lang" :value "en" :domain "site.com" :path "/")
                                      (make-instance 'drakma:cookie :name
"lang" :value "en" :domain "site.com" :path "/"))
                                *cookies*)
#<DRAKMA:COOKIE-JAR (with 2 cookies) {B629521}>

I think, that this is a bug, because without the TEST argument, for example,
SET-DIFFERENCE in this case will constantly return the first set (see
below), so either the code should be simplified or the test argument should
be added.

CL-USER> (set-difference (list (make-instance 'drakma:cookie :name "lang"
:value "en" :domain "site.com" :path "/")
                              (make-instance 'drakma:cookie :name "lang"
:value "en" :domain "site.com" :path "/"))
                        (list (make-instance 'drakma:cookie :name "lang"
:value "en" :domain "site.com" :path "/")
                              (make-instance 'drakma:cookie :name "lang"
:value "en" :domain "site.com" :path "/")))
(#<DRAKMA:COOKIE lang=en; path=/; domain=site.com>
 #<DRAKMA:COOKIE lang=en; path=/; domain=site.com>)

So, I believe, that this part should also be fixed, especially, since
UPDATE-COOKIES is called alongside with GET-COOKIES.

Best regards,
Vsevolod
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/drakma-devel/attachments/20100729/1db47cc7/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cookies.diff
Type: text/x-patch
Size: 563 bytes
Desc: not available
URL: <https://mailman.common-lisp.net/pipermail/drakma-devel/attachments/20100729/1db47cc7/attachment.bin>


More information about the Drakma-devel mailing list