wb->header_parse = 0;
MP_INLINE apr_status_t modperl_wbucket_pass(modperl_wbucket_t *wb,                                            const char *buf, apr_size_t len){    apr_bucket_alloc_t *ba = (*wb->filters)->c->bucket_alloc;    apr_bucket_brigade *bb;    apr_bucket *bucket;    if (wb->header_parse) {        request_rec *r = wb->r;        const char *bodytext = NULL;        int status = modperl_cgi_header_parse(r, (char *)buf, &bodytext);        if (status == HTTP_MOVED_TEMPORARILY) {            return APR_SUCCESS; /* XXX: HTTP_MOVED_TEMPORARILY ? */        }        else if (status != OK) {            ap_log_error(APLOG_MARK, APLOG_WARNING,                         0, r->server, "%s did not send an HTTP header",                         r->uri);        }        else if (!bodytext) {            return APR_SUCCESS;        }        if (bodytext) {            len -= (bodytext - buf);            buf = bodytext;        }    }    bb = apr_brigade_create(wb->pool, ba);    bucket = apr_bucket_transient_create(buf, len, ba);    APR_BRIGADE_INSERT_TAIL(bb, bucket);    MP_TRACE_f(MP_FUNC, "buffer length=%d\n", len);    return ap_pass_brigade(*(wb->filters), bb);}