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:05:19 GMT
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



--
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