RE: Zero-pad the chunk length which generated by tomcat automatically

2008-02-28 Thread Hanks Wang (hanwan)
Hi Chunk,

I saw it, thank u very much! 

-Original Message-
From: Caldarale, Charles R [mailto:[EMAIL PROTECTED] 
Sent: Friday, February 29, 2008 2:55 PM
To: Tomcat Users List
Subject: RE: Zero-pad the chunk length which generated by tomcat
automatically

> From: Hanks Wang (hanwan) [mailto:[EMAIL PROTECTED]
> Subject: RE: Zero-pad the chunk length which generated by tomcat 
> automatically
> 
> So all I want to know is whether I can use some way to zero-pad the 
> chunk-length which generated by tomcat.

I don't see any way to do so via configuration, but changing the
existing code would be simple.  Look here:

org/apache/coyote/http11/filters/ChunkedOutputFilter.java

in the middle of the doWrite() method where it's filling in the
chunkLength array.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
MATERIAL and is thus for use only by the intended recipient. If you
received this in error, please contact the sender and delete the e-mail
and its attachments from all computers.

-
To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe,
e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Zero-pad the chunk length which generated by tomcat automatically

2008-02-28 Thread Caldarale, Charles R
> From: Hanks Wang (hanwan) [mailto:[EMAIL PROTECTED] 
> Subject: RE: Zero-pad the chunk length which generated by 
> tomcat automatically
> 
> So all I want to know is whether I can use some way to zero-pad the
> chunk-length which generated by tomcat.

I don't see any way to do so via configuration, but changing the
existing code would be simple.  Look here:

org/apache/coyote/http11/filters/ChunkedOutputFilter.java

in the middle of the doWrite() method where it's filling in the
chunkLength array.

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
MATERIAL and is thus for use only by the intended recipient. If you
received this in error, please contact the sender and delete the e-mail
and its attachments from all computers.

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Zero-pad the chunk length which generated by tomcat automatically

2008-02-28 Thread Hanks Wang (hanwan)
Hi Chuck,

Maybe I used a improper word here. I know the spec doesn't say the
chunk-size has to be zero-pad to eight bytes.

But unfortunately there is such a case indeed and the real device sends
all chunk with chunk-size zero-filled.
And I need simulate the device and send the same response as the real
one.

So all I want to know is whether I can use some way to zero-pad the
chunk-length which generated by tomcat.

Thanks
Han

-Original Message-
From: Caldarale, Charles R [mailto:[EMAIL PROTECTED] 
Sent: Friday, February 29, 2008 2:29 PM
To: Tomcat Users List
Subject: RE: Zero-pad the chunk length which generated by tomcat
automatically

> From: Hanks Wang (hanwan) [mailto:[EMAIL PROTECTED]
> Subject: Zero-pad the chunk length which generated by tomcat 
> automatically
> 
> In real world, the chunk-size will be "zero-pad" until 8 bytes.

Where in the HTTP RFC do you find any requirement to zero-fill the
chunk-size to eight bytes?  The spec defines chunk-size as one or more
HEX digits, nothing more.

I'm curious: what "real-world" client are you using that hasn't
implemented that part of the RFC properly?

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
MATERIAL and is thus for use only by the intended recipient. If you
received this in error, please contact the sender and delete the e-mail
and its attachments from all computers.

-
To start a new topic, e-mail: users@tomcat.apache.org To unsubscribe,
e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



RE: Zero-pad the chunk length which generated by tomcat automatically

2008-02-28 Thread Caldarale, Charles R
> From: Hanks Wang (hanwan) [mailto:[EMAIL PROTECTED] 
> Subject: Zero-pad the chunk length which generated by tomcat 
> automatically
> 
> In real world, the chunk-size will be "zero-pad" until 8 bytes.

Where in the HTTP RFC do you find any requirement to zero-fill the
chunk-size to eight bytes?  The spec defines chunk-size as one or more
HEX digits, nothing more.

I'm curious: what "real-world" client are you using that hasn't
implemented that part of the RFC properly?

 - Chuck


THIS COMMUNICATION MAY CONTAIN CONFIDENTIAL AND/OR OTHERWISE PROPRIETARY
MATERIAL and is thus for use only by the intended recipient. If you
received this in error, please contact the sender and delete the e-mail
and its attachments from all computers.

-
To start a new topic, e-mail: users@tomcat.apache.org
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Zero-pad the chunk length which generated by tomcat automatically

2008-02-28 Thread Hanks Wang (hanwan)
Hi Filip,

Seems the method still has a problem:

In real world, the chunk-size will be "zero-pad" until 8 bytes.

For example: if I have a chunk which length is 20(HEX), 
The chunk-length should be :  0020
But the chunk-length generated by tomcat is 20.

Is it possible to make tomcat zero-pad the chunk-length?

Thanks!
Han


-Original Message-
From: Hanks Wang (hanwan) 
Sent: Friday, February 29, 2008 9:15 AM
To: 'Tomcat Users List'
Subject: RE: how to send http response in several chunked package with
Tomcat

My God, I am actually not aware of that despite it's so obvious...

Thank u Filip!

B.R
Han

-Original Message-
From: Filip Hanik - Dev Lists [mailto:[EMAIL PROTECTED]
Sent: Thursday, February 28, 2008 11:51 PM
To: Tomcat Users List
Subject: Re: how to send http response in several chunked package with
Tomcat

//first flush headers
response.flushBuffer()
//then flush body
while (havedata) {
  response.getOutputStream().println(some data)
  response.flushBuffer()
}

you need to put your thinker hat on Hanks :)

Hanks Wang (hanwan) wrote:
> Hi Filip,
> Seems the method has a problem : tomcat puts the http header and part 
> of the body in the same chunk.
>
> But I hope to generate the response in below format:
> Suppose I need use String tmp as the response, tmp = part1 + part2 +
> part3+part4;
> we use 4 tcp frame totally for the http response:
>
> Frame 1: only carry the httpheader, no chunk in the frame Frame 2: 
> includes the first chunk, carries part1+part2; Frame 3: includes the 
> second chunk, carries part3+part4; Frame 4: includes a chunk whose 
> length is 0, tells client it's the end of chunks;
>
> However Tomcat generate the response in such way:
> Frame 1: includes httpheader and the first chunk, 1st chunk carries 
> part1; Frame 2: includes part2 + part3;
> Frame3 and Frame4 are same with above;
>
> So how can I make sure there is only http header in the first frame?
>
> Thanks.
> Han
>  
>
> -Original Message-
> From: Hanks Wang (hanwan)
> Sent: Thursday, February 28, 2008 10:26 PM
> To: Tomcat Users List
> Subject: RE: how to send http response in several chunked package with

> Tomcat
>
> Hi Filip,
>
> Yes it works. Thanks a lot!
>
> Christopher, in fact I'm writing a servlet to fool a management 
> software, So I need make sure the servlet response is as close to real

> device as possible.
>
> Thanks for everyone's help.
>
> B.R
> Han
> -Original Message-
> From: Filip Hanik - Dev Lists [mailto:[EMAIL PROTECTED]
> Sent: Wednesday, February 27, 2008 11:24 PM
> To: Tomcat Users List
> Subject: Re: how to send http response in several chunked package with

> Tomcat
>
> you don't need to do that, tomcat does it for you.
> all you need to do is
>
> while (havedata) {
>   response.getOutputStream().println(some data)
>   response.flushBuffer()
> }
>
> and tomcat takes care of the rest
>
> Filip
>
> Hanks Wang (hanwan) wrote:
>   
>> Hi Johnny,
>>
>> I try below method implement the chunk in code:
>>
>> String tmp = "something very long";
>>
>> String hlen = Integer.toHexString(tmp.length());
>> hlen = hlen +"\r\n" + tmp.toString(); String chunkend = 
>> Integer.toHexString(0)+"\r\n"; 
>> response.getOutputStream().println(hlen);
>> response.getOutputStream().println(chunkend);
>>
>> I created two http chunk successfully by this way. The first chunk is

>> the data which wraps tmp, the second is the end chunk.
>>
>> But the question is, all these chunk and http header are in same 
>> frame
>> 
>
>   
>> (get it from wireshark.).
>>
>> How can I put them in different frame?
>> Which means we need 3 frame for the case: the first frame will carry 
>> the http header, the second will carry the first chunk data, the last

>> frame will carry the end chunk.
>>
>> Does it mean I need control the tcp/ip protocol? It's impossible,
>> 
> right?
>   
>> B.R
>> Han
>>
>>  
>>
>> -Original Message-
>> From: Hanks Wang (hanwan)
>> Sent: Wednesday, February 27, 2008 3:40 PM
>> To: Tomcat Users List
>> Subject: RE: how to send http response in several chunked package 
>> with
>> 
>
>   
>> Tomcat
>>
>> Hi Johnny,
>>
>> Thanks a lot. I read the http RFC and find something like this:
>>
>> The chunk-size field is a string of hex digits indicating the size of

>> the chunk. The chunked encoding is ended by any chunk whose size is 
>> zero, followed by the trailer, which is terminated by an empty line.
>>
>> Do u have any tutorial of ChunkedOutputFilter? I can't find anything 
>> from its API document..
>>
>> Thanks
>> Han
>>
>>
>> -Original Message-
>> From: Johnny Kewl [mailto:[EMAIL PROTECTED]
>> Sent: Tuesday, February 26, 2008 7:41 PM
>> To: Tomcat Users List
>> Subject: Re: how to send http response in several chunked package 
>> with
>> 
>
>   
>> Tomcat
>>
>>
>> -
>> -
>> --
>> ---
>> HARBOR: http://coolharbor.100free.com/index.htm
>> The most powerful application se