I'm implementing a content filter which wraps the content in multipart
mime. I can generate a separator, my data, separator, original payload
and separator. The problem is that if I just concatonate the brigades,
I end up with an EOS before my final separator. This works (the final
bucket gets sent down the wire) but, if I understand the meaning of
EOS I won't get into heaven this way. I figured I could copy all but
the EOS from the original payload to the new brigade:

-    APR_BRIGADE_CONCAT(bsend, bPayload);
+    APR_BRIGADE_FOREACH(e, bPayload) {
+       if (!APR_BUCKET_IS_EOS(e))
+           APR_BRIGADE_INSERT_TAIL(bsend, e);
+    }
#    ...
     apr_brigade_destroy(bPayload);
     e = apr_bucket_pool_create(boundary, boundryLength, r->pool);
     APR_BRIGADE_INSERT_TAIL(bsend, e);
     e = apr_bucket_eos_create();
     APR_BRIGADE_INSERT_TAIL(bsend, e);


This corrupted bsend on the first insert. I hadn't even gotten as far
as destroying bPayload, which I expected to be a bad idea. The
byterange filter uses some function calls to copy pieces of the
brigade. Is this the sanctioned approach?

-- 
-eric

([EMAIL PROTECTED])
Feel free to forward this message to any list for any purpose other than
email address distribution.

Reply via email to