Thanks for the patch. I'm back from vacation now and I've just
released 1.2.3 which fixes this.
Edi.
On Thu, Jul 29, 2010 at 11:22 AM, Vsevolod Dyomkin <vseloved(a)gmail.com> wrote:
> 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
>
> _______________________________________________
> drakma-devel mailing list
> drakma-devel(a)common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/drakma-devel
>
>