Quoting "Philip M. Gollucci" <[EMAIL PROTECTED]>:

You might try using Apache2::DebugFilter to see what buckets are
getting passed, but I think
the apreq filter is hooked before that.

I'm guessing this is a Perl thing. I'm in C, so this probably isn't going to be very useful. I'm watching the whole thing in gdb anyway.

Being that bucket brigades are doubly linked circular lists, and the
code is checking it hasn't looped on the list (aka ring) yet, it must
be missing it.  Probably because it got removed from it (in).  Maybe we
need to save the first bucket of the list somewhere. and change the
comparison.

This code is hit when there is a partial match. In this particular case, the boundary is set to "\r\n--LYNX". The partial match is "\r" and off is set to 1. However, the ending condition seems to be never met in that while loop.

To make matters worse, it's not as straightforward as one would think. The whole thing seems to depend on how the buckets are lined up inside the brigade. And, compiler options appear to affect the whole thing as well. With -O2, I can see the problem. With -O0, I can't.

I'll keep looking...

--
Bojan

Reply via email to