Search squid archive

Re: ecap adapted body limited to 64k

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



First, thank you!

Second, I read the description of the dev mailing list and didn't think this
applied. Sorry.

Third, I created a simplified test case for myself and can see things
working with a data size larger than 64KB, so *I* obviously have more
debugging to do.

It would help me to ask about something you said here...

> Nope. It received your variable value saying you had 100K to send. 
> The move notice is informing how much it received / copied out of your 
> adaptor buffer.

I see your point, though the "variable" which I pass back from the adapter
is a libecap::Area which has the actual data as well as the size, rather
than separately passing back the size in one step and the actual data in a
separate step.

Having said that, I expected to find some sort of while() loop in squid
which acknowledges that an adapter says it has a certain amount of data and
then repeatedly calls abContent() and abContentShift() until that amount is
used up.  I turned on "debug_options 93,9" but it's still not obvious to me. 
I found the function:

XactionRep.cc: Adaptation::Ecap::XactionRep::moveAbContent() which seems to
do that basic test (c.size() == 0 or c.size() > 0), but there is not a
looping construct around it.  I can see moveAbContent() being called from a
few places, such as

Adaptation::Ecap::XactionRep::noteAbContentDone()
Adaptation::Ecap::XactionRep::noteAbContentAvailable()
Adaptation::Ecap::XactionRep::noteMoreBodySpaceAvailable(RefCount<BodyPipe>
bp)

but I still expected to find a while() loop of some sort that repeatedly
called moveAbContent().  Perhaps I'm just wrong in thinking that I should
find a loop or recursive call.

Could/Would you please point me to the source file and/or function
responsible for repeatedly receiving/copying data out of the adapter buffer
until it has it all, particularly when > 64KB?  Perhaps the logic resides in
the BodyPipe since that seemed to be the source of the 64KB limit?

I now believe the problem is on my side, but I could use a pointer to figure
out how/why.  I should be able to figure it out from there if I can find
that part.

Thanks again.




--
View this message in context: http://squid-web-proxy-cache.1019090.n4.nabble.com/ecap-adapted-body-limited-to-64k-tp4657413p4657426.html
Sent from the Squid - Users mailing list archive at Nabble.com.


[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux