commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ryan Hoegg <rho...@isisnetworks.net>
Subject Re: [PATCH][HttpClient] bug 12607
Date Thu, 26 Sep 2002 12:07:46 GMT
Ryan Hoegg wrote:

> Ortwin Gl├╝ck wrote:
>
>> Ryan Hoegg wrote:
>>
>>> chunk-extension= *( ";" chunk-ext-name [ "=" chunk-ext-val ] )
>>> chunk-ext-name = token
>>> chunk-ext-val  = token | quoted-string
>>> token          = 1*<any CHAR except CTLs or separators>
>>>
>>> Since chunk-extension includes only tokens and an "=" I read this to 
>>> say that neither \r or \n is allowed before the first CRLF in a chunk.
>>
>>
>>
>> But the quoted string may contain virtually ANY character, no?
>>
>> Legal:
>> 89ab;value\r\n
>> 89ab;key=value\r\n
>> 89ab;key=\"value\"\r\n
>> 89ab;key=\"line1\r\nline2\rline3\nline4\"\r\n
>>
>> Illegal:
>> 89ab;key=line1\rline2\r\n
>> 89ab;key=line1\r\nline2\r\n
>>
>> Since we ignore everything after the ; anyway, I don't want to parse 
>> this, really. But we run into serious problems in the case where a 
>> \r\n occurs within the quoted string!
>> I have never encountered a server using this in the real-world (but I 
>> haven't seen enough servers). So once again: Has anybody ever see a 
>> server using this?
>>
>> Odi 
>
>
>
> I have never seen a server do this, but you are right about the 
> quoted-string:
>
>     quoted-string  = ( <"> *(qdtext | quoted-pair ) <"> )
>     quoted-pair    = "\" CHAR
>     qdtext         = <any TEXT except <">>
>
>     TEXT           = <any OCTET except CTLs,
>                        but including LWS>
>
> So it seems that for each cunk-ext-val, we need to:
> 1) read the first char
> 2) if it is not a <">, proceed as we currently do
> 3) if it is, continue to read chars until a <"> or a <\> is reached
> 4) in the case of a <\>, skip the next character
> 5) in the case of a <">, ensure that we either have CRLF or <;>
> 6) if we have <;>, we read another <token=token|quoted-string> i.e. 
> goto 1
>
> This is my reading of RFC2616.
>
> -- 
> Ryan Hoegg
> ISIS Networks 

Sorry, left out:

 LWS            = [CRLF] 1*( SP | HT )


--
Ryan Hoegg
ISIS Networks


--
To unsubscribe, e-mail:   <mailto:commons-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:commons-dev-help@jakarta.apache.org>


Mime
View raw message