This is pretty cool... haven't played too much with it, but
via inspection I like the implementation.

One question:

===================================================================
--- server/util_filter.c        (revision 1622873)
+++ server/util_filter.c        (working copy)
@@ -566,6 +566,16 @@
 {
     if (next) {
         apr_bucket *e;
+        unsigned int activity;
+        int empty = APR_BRIGADE_EMPTY(bb);
+        apr_status_t status;
...
+        while (APR_SUCCESS == status && empty) {
+            next = next->next;
+            if (next && next->c->activity == activity) {
+                status = next->frec->filter_func.out_func(next, bb);
+            }
+            else {
+                break;
+            }
+        }
+
+        return status;

Why does while check for empty? Wouldn't it be faster to
wrap that while in a 'if (empty)' ? It would safe an
addition check on a var that doesn't change on each loop
thru the while().

Reply via email to