> On Oct. 12, 2011, 10:58 p.m., Andreas Hartmetz wrote:
> > kioslave/http/http.cpp, line 3107
> > <http://git.reviewboard.kde.org/r/102822/diff/1/?file=38514#file38514line3107>
> >
> >     I guess the parser just lowercases the key ("keep-alive"), not the 
> > values. Lowercasing the keys is okay because per the spec they are 
> > case-insensitive, and it has the advantage that you can look up keys in 
> > more or less constant time when using a hashtable.
> >     In many cases the values are case sensitive (usernames, something 
> > Base64-encoded for example), so the parser better leaves them alone. So you 
> > need to normalize the case yourself.

Small addition: The values are key-value pairs again here, but that isn't 
universally so in HTTP headers. The header parser simply doesn't know about 
such details.


- Andreas


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
http://git.reviewboard.kde.org/r/102822/#review7283
-----------------------------------------------------------


On Oct. 10, 2011, 10:35 p.m., Andrea Iacovitti wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> http://git.reviewboard.kde.org/r/102822/
> -----------------------------------------------------------
> 
> (Updated Oct. 10, 2011, 10:35 p.m.)
> 
> 
> Review request for kdelibs, Andreas Hartmetz and Dawit Alemayehu.
> 
> 
> Description
> -------
> 
> Keep-alive header can specify multiple, comma-separated, value pairs.
> For example what apache web server normally sends is something like that:
> 
> "Keep-Alive: timeout=5, max=99"
> 
> Actually kio_http fails to extract timeout value because it assumes
> keep-alive header can contain only a single value pair.
> In the case of example above what it end up to do is
> m_request.keepAliveTimeout = QString("5, max=99").toInt(), that returns 0 
> (wrong!).
> 
> 
> Diffs
> -----
> 
>   kioslave/http/http.cpp 2862707 
>   kioslave/http/parsinghelpers.cpp fc75d68 
> 
> Diff: http://git.reviewboard.kde.org/r/102822/diff/diff
> 
> 
> Testing
> -------
> 
> -Patched code compiles
> -Hacked a web server and made tests against following keep-alive header 
> variants:
>  "Keep-Alive: timeout=5, max=99"
>  "Keep-Alive: Timeout=5, max=99"     (uppercase 'T')
>  "Keep-Alive: Timeout=5 , max=99"    (extra space before comma)
> 
> 
> Thanks,
> 
> Andrea Iacovitti
> 
>

Reply via email to