You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Janne Siren (JIRA)" <ji...@apache.org> on 2009/03/02 11:16:12 UTC
[jira] Updated: (DIRMINA-666) HTTP header parsing example
incompatible with rfc2616 / content-length field name should be interrepted
as case-insensitive
[ https://issues.apache.org/jira/browse/DIRMINA-666?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Janne Siren updated DIRMINA-666:
--------------------------------
Description:
Qt4 (4.4.3) QHttp class sends HTTP/POST command with HTTP header which has "content-length" field name in small letters. HTTP header parsing functionality in MINA Example does not accept these POST commands as it expects case-sensitive field name "Content-Length". MINA Example HTTP header parser functionality incorrectly drops these POST messages send by Qt4 QHttp class although those messages are fully compatible with rfc2616. Cut from rfc2616 (4.2 Message Headers): Field names are case-insensitive.
The problem (at least in MINA-1.1.0) is in org.apache.mina.example.httpserver.codec.HttpRequestDecoder.java:
private static final byte[] CONTENT_LENGTH = new String( "Content-Length:" )
.getBytes();
...
boolean found = false;
for( int j = 0; j < CONTENT_LENGTH.length; j++ )
{
if( in.get( i + j ) != CONTENT_LENGTH[ j ] )
{
found = false;
break;
}
found = true;
}
was:
Qt4 (4.4.3) QHttp class sends HTTP/POST command with HTTP header which has "content-length" field name in small letters. HTTP header parsing functionality in MINA Example does not accept these POST commands as it expects case-sensitive field name "Content-Length". MINA Example HTTP header parser functionality incorrectly drops these POST messages send by Qt4 QHttp class although those messages are fully compatible with rfc2616. Cut from rfc2616 (4.2 Message Headers): Field names are case-insensitive.
Updated location of the problem.
> HTTP header parsing example incompatible with rfc2616 / content-length field name should be interrepted as case-insensitive
> ---------------------------------------------------------------------------------------------------------------------------
>
> Key: DIRMINA-666
> URL: https://issues.apache.org/jira/browse/DIRMINA-666
> Project: MINA
> Issue Type: Bug
> Components: Example
> Affects Versions: 1.1.0
> Environment: Linux
> Reporter: Janne Siren
> Assignee: Emmanuel Lecharny
> Priority: Critical
> Original Estimate: 2h
> Remaining Estimate: 2h
>
> Qt4 (4.4.3) QHttp class sends HTTP/POST command with HTTP header which has "content-length" field name in small letters. HTTP header parsing functionality in MINA Example does not accept these POST commands as it expects case-sensitive field name "Content-Length". MINA Example HTTP header parser functionality incorrectly drops these POST messages send by Qt4 QHttp class although those messages are fully compatible with rfc2616. Cut from rfc2616 (4.2 Message Headers): Field names are case-insensitive.
> The problem (at least in MINA-1.1.0) is in org.apache.mina.example.httpserver.codec.HttpRequestDecoder.java:
> private static final byte[] CONTENT_LENGTH = new String( "Content-Length:" )
> .getBytes();
> ...
> boolean found = false;
> for( int j = 0; j < CONTENT_LENGTH.length; j++ )
> {
> if( in.get( i + j ) != CONTENT_LENGTH[ j ] )
> {
> found = false;
> break;
> }
> found = true;
> }
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.