From: Serge P. <ser...@gm...> - 2012-04-17 15:13:18
|
Hi! Looks like the yaws can't work with multiple cookies defined in a one Set-Cookie or Cookie header. This applies to the functions yaws_api:find_cookie_val/2 and yaws_api:parse_set_cookie/1. Is there any plan to fix this? Thanks, Serge |
From: Steve V. <vi...@ie...> - 2012-04-17 17:32:33
|
On Tue, Apr 17, 2012 at 11:07 AM, Serge Polkovnikov <ser...@gm...> wrote: > Hi! > Looks like the yaws can't work with multiple cookies defined in a one > Set-Cookie or Cookie header. This applies to the functions > yaws_api:find_cookie_val/2 and yaws_api:parse_set_cookie/1. > > Is there any plan to fix this? Can you submit a test case that you feel should work but doesn't? --steve |
From: Serge P. <ser...@gm...> - 2012-04-17 18:38:16
|
17 апреля 2012 г. 20:32 пользователь Steve Vinoski <vi...@ie...>написал: > > Can you submit a test case that you feel should work but doesn't? > Something like that: 1> yaws_api:find_cookie_val("sid",["sid=5555,hhh=4444"]). "5555,hhh=4444" 2> yaws_api:find_cookie_val("hhh",["sid=5555,hhh=4444"]). [] 3> yaws_api:parse_set_cookie("sid=5555,hhh=4444"). {setcookie,"sid","5555,hhh=4444",false,undefined,undefined, undefined,undefined,undefined,undefined,undefined,undefined, undefined,undefined} And also the cookie Id is case-insensitive (by RFC), but: 6> yaws_api:find_cookie_val("SID",["sid=5555"]). [] > > --steve > |
From: Christopher F. <chr...@ca...> - 2012-07-04 19:16:25
Attachments:
signature.asc
|
On 17/04/2012 17:07, Serge Polkovnikov wrote: > Hi! > Looks like the yaws can't work with multiple cookies defined in a one > Set-Cookie or Cookie header. This applies to the functions > yaws_api:find_cookie_val/2 and yaws_api:parse_set_cookie/1. > > Is there any plan to fix this? Hi, I have just pushed a fix to parse multiple cookies in one Set-Cookie header. Now, yaws_api:parse_set_cookie/1 returns a list of #setcookie{} records. If no cookie was found or if an error occurred, it returns []. Note that this fix breaks the compatibility with previous versions. 2 new functions was also added, yaws_api:parse_cookie/1 and yaws_api:format_cookie/1, to parse and format 'Cookie' headers. Can you confirm that it fixes your problems ? -- Christopher |
From: Christopher F. <chr...@ca...> - 2012-07-10 16:21:02
Attachments:
signature.asc
|
On 04/07/2012 21:16, Christopher Faulet wrote: > On 17/04/2012 17:07, Serge Polkovnikov wrote: >> Hi! >> Looks like the yaws can't work with multiple cookies defined in a one >> Set-Cookie or Cookie header. This applies to the functions >> yaws_api:find_cookie_val/2 and yaws_api:parse_set_cookie/1. >> >> Is there any plan to fix this? > > Hi, > > I have just pushed a fix to parse multiple cookies in one Set-Cookie > header. Now, yaws_api:parse_set_cookie/1 returns a list of #setcookie{} > records. If no cookie was found or if an error occurred, it returns []. > Note that this fix breaks the compatibility with previous versions. > > 2 new functions was also added, yaws_api:parse_cookie/1 and > yaws_api:format_cookie/1, to parse and format 'Cookie' headers. > > Can you confirm that it fixes your problems ? > Hi, Cookie parsing was refactored to follow the RFC 6265 [1]. This RFC obsoletes RFCs 2965 and 2109. #setcookie{} and #cookie{} records have changed to reflect it. And, of course, yaws_api:parse_set_cookie/1 and yaws_api:parse_cookie/1 have been refactored accordingly. Because old RFCs are still used, we try to be backward compatible. The main concession concerns the comma. 'Set-Cookie' headers are parsed as comma-separated lists of cookies. So comma is forbidden in unquoted values (expect for 'Expires' attributes). This refactoring still breaks the compatibility with previous versions of Yaws. Sorry for the breakage but we saw no other way to improve cookie parsing. [1] http://tools.ietf.org/html/rfc6265 -- Christopher |