httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r..@covalent.net
Subject Re: cvs commit: apache-2.0/src/main http_protocol.c
Date Fri, 13 Oct 2000 20:48:12 GMT

> >             The problem as I see it, is that ap_get_client_block knows
> > when it hits the end of the body.  Currently, no other code in any patch I
> > have seen knows that information.  
> 
> Isn't this a universal problem with length changing content filters? 
> ap_get_client_block or its callers *can't* detect end-of-body any more. 
> It _has_ to be something like http_filter that detects end-of-body.  It
> could set c->remaining to zero to signal this, or pass up a special
> bucket, or flag, or whatever.  I'm not picky, as long as it works.

I am implementing this with a special bucket type even as we speak.

> >                    the text at the top of your patch says
> > that if http_filter reads past the end of the body, then it gets put back
> > in c->raw_data.  Well, if I read this, it says to me that http_filter
> > reads some data, and it must make it all the way up to
> > ap_get_client_block.  
> 
> Nope, see above.  When http_filter is in body mode, it is the length
> cop.  It might read too much from core_input_filter.  If so, the excess
> is unread via c->raw_data _without_ ever going thru any content altering
> filters. 
> 
> >   Unfortunately, this is broken, because by the
> > time it gets to ap_get_client_block, it has been through multiple filters,
> > one of which could have seriously screwed up the data.
> > 
> 
> OK, now I understand why you were so shook up about the concept.  Sorry
> if I'm slow.  (Bass players are _supposed_ to be laid back.  It's in our
> union rules :-) But c->raw_data never contained anything but raw data,
> exactly like f->ctx in http_filter as of yesterday.  

Okay, with the explanation above, I am a bit clearer about what you were
doing.  Unfortunately, the message with the patch said that the de-chunk
filter would also have to use c->raw_data.  

I am sorry for the confusion, I am not trying to be difficult here, I am
trying just like everybody else to get the server accepting POST requests
again.  If we have the design correct, then chunking will be easy to
implement in a few hours.  It will be broken of course, because that's
what initial code looks like, but at least it will be a start.  Commit
comming soon-ish.

I really think the direction we are going right now is a bit cleaner.  We
should know for sure in a few minutes.  :-)

Ryan

_______________________________________________________________________________
Ryan Bloom                        	rbb@apache.org
406 29th St.
San Francisco, CA 94131
-------------------------------------------------------------------------------



Mime
View raw message