When parsing this Set-Cookie line:
Set-Cookie: shssl=4058628; path=/; secure; HttpOnly
The resulting Cookie is:
#<COOKIE shssl=4058628; path=/; domain=www.base.de>
Which misses both features: 'HttpOnly' and 'secure'.
I traced the bug down to 'parse-set-cooie' which returns (("Set-Cookie: shssl" "4058628" (("path" . "/") ("secure; HttpOnly"))))
instead of (("Set-Cookie: shssl" "4058628" (("path" . "/") ("secure") ("HttpOnly"))))
As far as I understood the code the problem is caused by 'read-name-value-pairs' of chunga.
I am using chunga 1.1.1 and drakma 1.2.9
Is this a already known bug/problem?
Simon,
thank you for your report. It is not a known problem. I'd be grateful if you could open a github issue (https://github.com/edicl/drakma/issues). From glancing at your description, it seems to me that this is indeed a bug that should be fixed.
Thanks, Hans
On Sun, Dec 9, 2012 at 6:15 PM, Simon Koch simkoc@postfach.it wrote:
When parsing this Set-Cookie line:
Set-Cookie: shssl=4058628; path=/; secure; HttpOnly
The resulting Cookie is:
#<COOKIE shssl=4058628; path=/; domain=www.base.de>
Which misses both features: 'HttpOnly' and 'secure'.
I traced the bug down to 'parse-set-cooie' which returns (("Set-Cookie: shssl" "4058628" (("path" . "/") ("secure; HttpOnly"))))
instead of (("Set-Cookie: shssl" "4058628" (("path" . "/") ("secure") ("HttpOnly"))))
As far as I understood the code the problem is caused by 'read-name-value-pairs' of chunga.
I am using chunga 1.1.1 and drakma 1.2.9
Is this a already known bug/problem?
drakma-devel mailing list drakma-devel@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/drakma-devel
I did: https://github.com/edicl/drakma/issues/24
I also got a crude fix for the problem by adding those two functions:
(defun clean-string (string of) "cleans a given string of of by exploding them and concatenating the resulting list using consing" (labels ((clean (sequence) (if sequence (if (char= (car sequence) of) (clean (cdr sequence)) (cons (car sequence) (clean (cdr sequence)))) nil))) (coerce (clean (coerce string 'list)) 'string)))
(defun fix-parameters (parameters) "goes through the given parameterlist an checks whether seperated parameters are in one parameterpair cons for then seperating them and cleaning them of #; and #\SPACE" (if parameters (if (find #; (caar parameters)) (cons (cons (subseq (caar parameters) 0 (position #; (caar parameters))) nil) (cons (cons (clean-string (clean-string (subseq (caar parameters) (position #; (caar parameters))) #;) #\ ) nil) (fix-parameters (cdr parameters)))) (cons (car parameters) (fix-parameters (cdr parameters)))) nil))
and modifying parse-set-cookie:
(defun parse-set-cookie (string) "Parses the `Set-Cookie' header line STRING and returns a list of three-element lists where each one contains the name of the cookie, the value of the cookie, and an attribute/value list for the optional cookie parameters." (let ((*current-error-message* (format nil "While parsing cookie header ~S:" string)) result) (dolist (substring (split-set-cookie-string string)) (with-sequence-from-string (stream substring) (let* ((name/value (read-name-value-pair stream :cookie-syntax t)) (parameters (read-name-value-pairs stream :value-required-p nil :cookie-syntax t))) (push (list (car name/value) (cdr name/value) (fix-parameters parameters)) result)))) (nreverse result)))
But as the problem seems to be the chunga function, I'd rather isolate and fix the bug there instead of adding some compensating code in drakma.
Am So, 9.12.2012, 18:44, schrieb Hans Hübner:
Simon,
thank you for your report. It is not a known problem. I'd be grateful if you could open a github issue (https://github.com/edicl/drakma/issues). From glancing at your description, it seems to me that this is indeed a bug that should be fixed.
Thanks, Hans
On Sun, Dec 9, 2012 at 6:15 PM, Simon Koch simkoc@postfach.it wrote:
When parsing this Set-Cookie line:
Set-Cookie: shssl=4058628; path=/; secure; HttpOnly
The resulting Cookie is:
#<COOKIE shssl=4058628; path=/; domain=www.base.de>
Which misses both features: 'HttpOnly' and 'secure'.
I traced the bug down to 'parse-set-cooie' which returns (("Set-Cookie: shssl" "4058628" (("path" . "/") ("secure; HttpOnly"))))
instead of (("Set-Cookie: shssl" "4058628" (("path" . "/") ("secure") ("HttpOnly"))))
As far as I understood the code the problem is caused by 'read-name-value-pairs' of chunga.
I am using chunga 1.1.1 and drakma 1.2.9
Is this a already known bug/problem?
drakma-devel mailing list drakma-devel@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/drakma-devel
drakma-devel mailing list drakma-devel@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/drakma-devel
Simon,
I fixed this in Chunga, the new release is 1.1.2. If you could give it a try and let me know if things work better now, I'd appreciate it.
Thanks, Hans
I updated the library and it seems to work, thank you for the fix.
Is there any possibility to also show the post data send, when printing the sent header on standard-out via (setf drakma:*header-stream* *standard-output*)? Currently only the "normal" headers are shown, without the post-data part.
Greetings,
Simon
Am So, 9.12.2012, 22:41, schrieb Hans Hübner:
Simon,
I fixed this in Chunga, the new release is 1.1.2. If you could give it a try and let me know if things work better now, I'd appreciate it.
Thanks, Hans
drakma-devel mailing list drakma-devel@common-lisp.net http://lists.common-lisp.net/cgi-bin/mailman/listinfo/drakma-devel
On Sun, Jan 6, 2013 at 10:42 PM, Simon Koch simkoc@postfach.it wrote:
Is there any possibility to also show the post data send, when printing the sent header on standard-out via (setf drakma:*header-stream* *standard-output*)? Currently only the "normal" headers are shown, without the post-data part.
Currently, there is no function to enable logging of request bodies. If what you're interested in is seeing how post parameters are encoded, you can trace DRAKMA::ALIST-TO-URL-ENCODED-STRING at this time.
-Hans